| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439 |
- const app = getApp();
- const api = require('@/utils/api.js');
- const Constants = require('@/utils/Constants.js')
- const mixins = require('@/mixins/index.js')
- Page({
- mixins: [mixins],
- /**
- * 页面的初始数据
- */
- data: {
- // 选择数据
- choosedData: [],
- // // 是否显示tab
- // tabFlag: false,
- // 页签默认在第一个
- active: 0,
- // 查询条件
- searchContent: null,
- // 路由
- routeObjName: 'common',
- // 列表区(内容)
- contentList: null,
- // 方法名
- method: null,
- // 字典类型
- dictCode: null,
- // 标题
- title: null,
- // 需要调到的新建路由
- addUrl: null,
- // 是否多选
- chooseFlag: false,
- // 提示信息
- placeholder: [],
- // tab页签
- tagList: [],
- // 用于多选
- valueKey: null,
- labelKey: null,
- // 多选时是否允许重复
- repeatFlag: false,
- // 确定按钮
- buttonList: [{
- name: 'confirm',
- title: '确定'
- }],
- },
- /**
- * @desc : 调到新建
- * @author : 姜永辉
- * @date : 2022/5/23 15:16
- */
- toAdd() {
- console.log('e', this.data.addUrl);
- if (!this.data.addUrl) {
- return;
- }
- let _this = this
- wx.navigateTo({
- url: this.data.addUrl,
- events: {
- // // 回调后,在这里给页面赋值
- // bandData: function (e) {
- // }
- },
- success: function (res) {
- // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
- res.eventChannel.emit('params', {})
- }
- })
- },
- /**
- * @desc : 选择数据
- * @author : 周兴
- * @date : 2024/3/25 15:16
- */
- chooseData(e) {
- let list = e.detail.list;
- let valueKey = this.data.valueKey;
- if (!valueKey) {
- this.setData({
- choosedData: list
- })
- } else {
- let choosedData = this.data.choosedData
- let filters = []
- if (list && list.length > 0) {
- list.forEach(it => {
- // 不允许重复
- if (!this.data.repeatFlag) {
- filters = choosedData.filter(t => t[valueKey] == it[valueKey])
- if (!filters || filters.length == 0) {
- choosedData.push(it);
- }
- } else {
- // 可以重复
- choosedData.push(it);
- }
- })
- this.setData({
- choosedData: choosedData
- })
- }
- }
- },
- /**
- * @desc : 确定事件-返回数据
- * @author : 周兴
- * @date : 2024/3/25 15:16
- */
- confirm() {
- let list = [...this.data.choosedData]
- let id = list.map(it => it[this.data.valueKey])
- let name = list.map(it => it[this.data.labelKey])
- const eventChannel = this.getOpenerEventChannel();
- eventChannel.emit('bindData', {
- data: { list, id, name }
- })
- wx.navigateBack({
- delta: 1
- })
- },
- /**
- * @desc : 点击事件-返回数据
- * @author : 姜永辉
- * @date : 2022/5/23 15:16
- */
- toDetail(e) {
- // 如果选择框开启就走确定模式
- if (this.data.chooseFlag) {
- return;
- }
- let item = e.detail.item
- // 读取传入的单据类型
- let route = this.data.chooseRoute
- let data = {}
- switch (route.type) {
- // 部门
- case Constants.chooseType.org:
- data = {
- id: item.orgId,
- name: item.orgName
- }
- break;
- // 员工
- case Constants.chooseType.staff:
- data = {
- id: item.staffId,
- name: item.staffName
- }
- break;
- // 供应商
- case Constants.chooseType.supplier:
- data = {
- id: item.supId,
- name: item.supName,
- item: item
- }
- break;
- // 对象类型
- case Constants.chooseType.objectType:
- data = {
- id: item.objId,
- name: item.objName,
- objType: item.objType
- }
- break;
- // 仓库
- case Constants.chooseType.warehouse:
- data = {
- id: item.whId,
- name: item.whName
- }
- break;
- // 数据字典
- case Constants.chooseType.dictionary:
- data = {
- id: item.dataId,
- name: item.dataValue,
- dictCode: item.dictCode,
- dataCode: item.dataCode,
- flgDefault: item.flgDefault,
- }
- break;
- default:
- data = {}
- break;
- }
- const eventChannel = this.getOpenerEventChannel();
- eventChannel.emit('bindData', {
- data: data
- })
- wx.navigateBack({
- delta: 1
- })
- },
- /**
- * @desc : 设置查询参数
- * @date : 2024/3/25 15:49
- * @author : 周兴
- */
- setSearchParams(params) {
- // 字典类别
- if (this.data.dictCode) {
- params.dictCode = this.data.dictCode
- }
- let chooseType = this.data.chooseRoute.type;
- // 供应商
- if (chooseType == Constants.chooseType.supplier) {
- params.supType = "";
- let active = this.data.active
- if (active == 1) { //采购供应商
- params.supType = Constants.kindCode.supplierPur;
- } else if (active == 2) { //服务供应商
- params.supType = Constants.kindCode.supplierService;
- }
- }
- return params
- },
- /**
- * @desc : 查询数据
- * @date : 2024年3月23日
- * @author : 周兴
- */
- getData(params) {
- let service = app.globalData[this.data.routeObjName + 'Service'];
- return this.excute(service, service[this.data.method], params);
- },
- /**
- * @desc : tab切换(列表和已选)
- * @date : 2024/3/25 15:49
- * @author : 周兴
- */
- changeTag(e) {
- this.setData({
- active: e.detail.index
- })
- },
- /**
- * @desc : 切换tab
- * @date : 2024/2/1 15:49
- * @author : 周兴
- */
- onChangeTabs(e) {
- let index = e.detail.detail.index
- this.setData({
- active: index,
- })
- // 查询
- this.searchData()
- },
- /**
- * @desc : 生命周期函数(初始加载)
- * @date : 2024年3月23日
- * @author : 周兴
- */
- loadInit(e) {
- console.log('item', this.data.item);
- let route = this.data.chooseRoute;
- if (!route || !route.type) {
- return;
- }
- let title;
- // 读取传入的单据类型
- let chooseType = route.type
- switch (chooseType) {
- // 部门
- case Constants.chooseType.org:
- title = "部门"
- this.setData({
- addUrl: '/package-basic-data/pages/org/org',
- routeObjName: 'common',
- method: 'getOrg',
- title: 'orgName',
- contentList: [{
- name: 'orgCode',
- title: '部门编码'
- },],
- placeholder: ['orgName']
- })
- break;
- // 员工
- case Constants.chooseType.staff:
- title = "员工"
- this.setData({
- addUrl: '/package-basic-data/pages/staff/add/add',
- routeObjName: 'common',
- method: 'getStaff',
- title: 'staffName',
- contentList: [{
- name: 'staffCode',
- title: '员工编码'
- },
- {
- name: 'orgName',
- title: '部门'
- },
- ],
- placeholder: ['staffName']
- })
- break;
- // 供应商
- case Constants.chooseType.supplier:
- title = "供应商"
- this.setData({
- addUrl: '/package-purchase/pages/supplier-list/add/add',
- routeObjName: 'supplier',
- method: 'selectByCond',
- title: 'supName',
- valueKey: 'supId',
- labelKey: 'supName',
- chooseFlag: route.chooseFlag,
- contentList: [{
- name: 'supTypeName',
- title: '供应商类别'
- },
- {
- name: 'returnAddress',
- title: '供应商地址'
- },
- ],
- placeholder: ['supplier']
- })
- // 多选时就不要有其他的tag标签
- if (!route.chooseFlag) {
- this.setData({
- tagList: [{
- title: mixins.$t("all") //全部
- }, {
- title: mixins.$t("procurementSupplier") //采购供应商
- }, {
- title: mixins.$t("serviceProvider") // 服务供应商
- }],
- })
- }
- break;
- // 仓库
- case Constants.chooseType.warehouse:
- title = "仓库"
- this.setData({
- addUrl: '/package-basic-data/pages/basic-data/basic-data',
- routeObjName: 'common',
- method: 'warehouseListBy',
- title: 'whName',
- contentList: [{
- name: 'supervisor',
- title: '仓库主管'
- },
- {
- name: 'contactPhone',
- title: '联系电话'
- },
- ],
- placeholder: ['whName']
- })
- break;
- // 数据字典
- case Constants.chooseType.dictionary:
- title = "数据字典"
- this.setData({
- addUrl: '/package-basic-data/pages/basic-data/basic-data',
- routeObjName: 'common',
- method: 'getDictionaryData',
- dictCode: route.dictCode,
- chooseFlag: route.chooseFlag,
- title: 'dataValue',
- contentList: [{
- name: 'dataCode',
- title: '数据编码'
- },
- {
- name: 'dictCode',
- title: '字典项目'
- },
- ],
- placeholder: ['orgName']
- })
- break;
- // 对象类型
- case Constants.chooseType.objectType:
- title = "对象类型"
- this.setData({
- routeObjName: 'common',
- method: 'getSupplierAndCustomerData',
- title: 'objName',
- contentList: [{
- name: 'objCode',
- title: '对象编码'
- },
- {
- name: 'objTypeName',
- title: '对象'
- },
- {
- name: 'addressFull',
- title: '地址'
- },
- ],
- searchContent: [{
- code: 'supplier-customer',
- title: '选择对象',
- searchType: Constants.searchType.switch,
- list: [{
- code: 'supplier',
- title: '供应商'
- },
- {
- code: 'customer',
- title: '客户'
- }
- ]
- },
- ],
- placeholder: ['customerName', 'supplierName', 'address', 'telephone']
- })
- break;
- default:
- break;
- }
- // 多选,数据回显到已选列表
- if (this.data.chooseFlag && this.data.item && this.data.item.data) {
- this.setData({
- choosedData: this.data.item.data
- })
- }
- wx.setNavigationBarTitle({
- title: '选择' + title,
- })
- // 调取查询
- this.searchData();
- },
- })
|