123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- import {
- ApiModel
- } from "../../utils/api"
- const _Http = new ApiModel();
- Component({
- options: {
- addGlobalClass: true
- },
- /**
- * 组件的属性列表
- */
- properties: {
- /* 类型 */
- type: {
- type: String,
- value: "default" //annunciate
- },
- /* 标题 */
- title: {
- type: String,
- },
- /* 选中列表 */
- saleprodclass: {
- type: Array,
- value: []
- },
- /* 是否全选 */
- isAll: {
- type: Number
- },
- /* 回调 */
- saleprodChange: {
- type: Function
- },
- /* 分类列表 */
- dataList: {
- type: Array,
- value: []
- },
- /* 是否请求 */
- isRequest: {
- type: Boolean,
- value: true
- }
- },
- lifetimes: {
- ready: function () {
- //查询类目列表
- if (this.data.isRequest) _Http.basic({
- "accesstoken": wx.getStorageSync('userData').token,
- "classname": "enterprise.system.prodclass",
- "method": "query_typeselectList",
- "content": {}
- }, false).then(res => {
- if (res.msg != '成功') return;
- let dataList = [];
- for (let i = 0; i < res.data.length; i++) {
- dataList.push({
- value: res.data[i],
- index: i,
- checked: false
- })
- }
- //遍历选中数据
- const arr = this.data.saleprodclass;
- for (let i = 0; i < arr.length; i++) {
- for (let k = 0; k < dataList.length; k++) {
- if (arr[i] == dataList[k].value) {
- dataList[k].checked = true;
- break;
- }
- }
- }
- this.setData({
- dataList
- })
- });
- if (this.data.type == 'annunciate') {
- _Http.basic({
- "accesstoken": wx.getStorageSync('userData').token,
- "classname": "customer.tagents.tagents",
- "method": "query_cooperation",
- "content": {
- "getdatafromdbanyway": true,
- "pageNumber": 1,
- "pageSize": 999,
- "where": {
- "condition": "",
- "ftype": "",
- "fstatus": ""
- }
- }
- }, false).then(res => {
- if (res.msg != '成功') return wx.showToast({
- title: res.data,
- icon: "none"
- })
- let data = res.data,
- partnerCount = 0;
- if (this.data.isAll == 0) {
- for (let i = 0; i < data.length; i++) {
- data[i].index = i;
- data[i].checked = true;
- partnerCount = partnerCount + 1
- }
- } else {
- for (let i = 0; i < data.length; i++) {
- data[i].index = i;
- data[i].checked = false;
- }
- }
- this.setData({
- dataList: data,
- partnerCount,
- manual: this.data.isAll
- });
- })
- }
- },
- },
- observers: {
- 'saleprodclass': function (saleprodclass) {
- if (this.data.type != "annunciate") return;
- setTimeout(() => {
- let dataList = this.data.dataList;
- for (let i = 0; i < dataList.length; i++) {
- if (saleprodclass.some((v) => v == dataList[i].tcooperationagentsid)) {
- dataList[i].checked = true;
- }
- }
- this.setData({
- dataList
- })
- }, 1000);
- }
- },
- /**
- * 组件的初始数据
- */
- data: {
- pitchOnList: [], //选中列表
- manual: 0, //是否手动选择发布范围
- },
- /**
- * 组件的方法列表
- */
- methods: {
- /* 确定 */
- confirm() {
- if (this.data.type == 'default') {
- this.triggerEvent("saleprodChange", this.data.pitchOnList)
- } else if (this.data.type == 'annunciate') {
- let data = {
- isAll: this.data.isAll
- };
- if (this.data.isAll == 1) {
- let include = [], //选中的商户id
- list = this.data.dataList,
- deleteItem = [], //删除的商户id
- saleprodclass = this.data.saleprodclass;
- //选中商户id
- for (let i = 0; i < list.length; i++) {
- if (list[i].checked) include.push(list[i].tcooperationagentsid)
- };
- //删除商户id
- if (saleprodclass.length >= 1) {
- for (let i = 0; i < saleprodclass.length; i++) {
- if (!include.some((v) => v == saleprodclass[i])) {
- deleteItem.push(saleprodclass[i])
- }
- }
- };
- data.include = include;
- data.deleteItem = deleteItem;
- if (include.length == 0) return wx.showToast({
- title: '您还未选择可查看通告的合作伙伴',
- icon: "none"
- })
- };
- this.triggerEvent("saleprodChange", JSON.stringify(data));
- }
- },
- /* 多选框返回数值 */
- checkedChange(e) {
- this.setData({
- pitchOnList: e.detail.value
- });
- },
- /* 添加背景色 */
- pitchOn(e) {
- let dataList = this.data.dataList,
- index = e.currentTarget.dataset.index,
- partnerCount = this.data.partnerCount,
- isAll = 1;
- //计数
- if (dataList[index].checked) {
- partnerCount = partnerCount - 1
- } else {
- partnerCount = partnerCount + 1
- }
- isAll = (partnerCount == dataList.length) ? isAll = 0 : isAll = 1; //是否指定范围
- dataList[index].checked = !dataList[index].checked; //切换状态
- if (this.data.manual == 1) isAll = 1;
- this.setData({
- dataList,
- isAll,
- partnerCount
- })
- },
- /* 商户全选或指定范围 */
- allOrPart(e) {
- const {
- value
- } = e.detail;
- if (value == 0) {
- let dataList = this.data.dataList;
- for (let i = 0; i < dataList.length; i++) {
- dataList[i].checked = true;
- }
- this.setData({
- dataList
- })
- };
- this.setData({
- isAll: value,
- manual: value
- })
- }
- }
- })
|