const _Http = getApp().globalData.http, currency = require("../../../utils/currency"), CNY = value => currency(value, { symbol: "¥", precision: 2 }).format(); Page({ data: { params: {}, //请求体 result: [], //返回结果 radio: false, //是否为单选 idname: "sa_projectid", //idkey showName: "projectname", //表单用 显示名称 filtratelist: [], }, openFiltrate() { this.setData({ showFiltrate: true }) }, handleFilter(e) { e.detail.condition = this.data.params.content.where.condition; this.data.params.content.where = e.detail; this.getList(true); }, onLoad(options) { if (options.params) { let params = JSON.parse(options.params); if (!params.content.pageNumber || !params.content.pageTotal) { params.content.pageNumber = 1; params.content.pageTotal = 1; } this.setData({ params }); } if (options.title) wx.setNavigationBarTitle({ title: options.title, }) this.setData({ radio: options.radio ? true : false, idname: options.idname || this.data.idname, showName: options.showName || this.data.showName, }); this.getList() _Http.basic({ "classname": "sysmanage.develop.optiontype.optiontype", "method": "optiontypeselect", "content": { "nochace": true, "pageNumber": 1, "pageSize": 1000, "typename": "projecttype", "parameter": { "siteid": wx.getStorageSync('userMsg').siteid } } }).then(res => { console.log("项目类型", res) if (res.msg == '成功') { this.data.filtratelist.unshift({ label: "项目类型", index: null, showName: "value", //显示字段 valueKey: "projecttype", //返回Key selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象 value: "", //选中值 list: res.data }) this.setData({ filtratelist: this.data.filtratelist }) } }) _Http.basic({ "id": 20221223141802, "content": { "pageNumber": 1, "pageSize": 9999, "where": { "condition": "" } } }, false).then(res => { console.log("获取领域", res) if (res.msg == '成功') { this.data.filtratelist.push({ label: "领域", index: null, showName: "tradefield", //显示字段 valueKey: "tradefield", //返回Key selectKey: "tradefield", //传参 代表选着字段 不传参返回整个选择对象 value: "", //选中值 list: res.data }) this.setData({ filtratelist: this.data.filtratelist }) } }) }, getList(init = false) { //init 用于初始化分页 if (init.detail != undefined) init = init.detail; let params = this.data.params; if (init) params.content.pageNumber = 1; if (params.content.pageNumber > params.content.pageTotal) return; _Http.basic(params).then(res => { console.log("选择项目列表", res) this.selectComponent('#ListBox').RefreshToComplete(); if (res.msg != '成功') return wx.showToast({ title: res.data, icon: "none" }) res.data = res.data.map(v => { v.signamount_due = CNY(v.signamount_due); return v }) this.setData({ 'params.content.pageNumber': res.pageNumber + 1, 'params.content.pageTotal': res.pageTotal, 'params.content.total': res.total, list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data) }) }) }, /* 获取列表标签 */ getTags() { let list = this.data.list, ownerids = list.map(v => v.sa_projectid); _Http.basic({ "id": 20221018102001, "content": { nocache: true, "ownertable": "sa_project", ownerids } }).then(res => { console.log("标签", res) for (let key in res.data) { let index = list.findIndex(v => v.sa_projectid == key); list[index].tags = res.data[key] }; console.log(list) this.setData({ list }) }) }, /* 删除项 */ deteleItem(id) { this.setData({ list: this.data.list.filter(v => v[this.data.idname] != id), "params.content.total": this.data.params.content.total - 1 }) }, /* 选中 */ changeResult(e) { let { id } = e.currentTarget.dataset, result = this.data.result; if (this.data.radio) { result = [id]; } else { result.some(v => v == id) ? result = result.filter(v => v != id) : result.push(id) } this.setData({ result }); if (this.data.radio) this.submit(); }, /* 提交 */ submit() { let result = this.data.result, obj = this.data.radio ? { id: result, item: this.data.list.find(value => value[this.data.idname] == result), value: [this.data.list.find(value => value[this.data.idname] == result)[this.data.showName], result] } : { result, list: result.map(v => this.data.list.find(value => value[this.data.idname] == v)), value: [result.map(v => { let data = this.data.list.find(value => value[this.data.idname] == v); return data ? data[this.data.showName] : "" }), result] } getApp().globalData.handleSelect && getApp().globalData.handleSelect(obj) }, /* 开始搜索 */ startSearch({ detail }) { let condition = this.data.content ? this.data.content.where.condition : this.data.params.content.where.condition; if (detail == condition) return; this.setData({ 'content.where.condition': detail, 'params.content.where.condition': detail }); this.getList(true); }, /* 取消搜索 */ onClear() { this.setData({ 'content.where.condition': "", 'params.content.where.condition': "" }); this.getList(true); }, onReady() { this.selectComponent("#ListBox").setHeight(".div", this); }, onUnload() { //回收数据 getApp().globalData.handleSelect = null; } })