| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697 |
- 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: {
- active:0,
- // 选择数据
- choosedData: [],
- // // 是否显示tab
- // tabFlag: false,
- // 页签默认在第一个
- // 查询条件
- 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() {
- 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 item = e.detail.item;
- let valueKey = this.data.valueKey;
- if (!valueKey) {
- this.setData({
- choosedData: list
- })
- } else {
- let choosedData = this.data.choosedData
- // 不允许重复
- if (!this.data.repeatFlag) {
- if (e.detail.checked) { // 勾选
- let filters = choosedData.filter(it => it[valueKey] == item[valueKey])
- if (!filters || filters.length == 0) {
- choosedData.push(item);
- }
- } else { // 取消勾选
- choosedData = choosedData.filter(it => it[valueKey] != item[valueKey])
- }
- } else {
- if (e.detail.checked) { // 勾选
- // 可以重复
- choosedData.push(item);
- }
- }
- 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,
- orgId: item.orgId,
- orgName: item.orgName,
- staffPhone: item.staffPhone,
- }
- break;
- // 角色
- case Constants.chooseType.role:
- data = {
- id: item.roleId,
- name: item.roleName,
- }
- break;
- //渠道
- case Constants.chooseType.saleChannel:
- data = {
- id: item.channelId,
- name: item.channelName,
- code: item.channelCode
- }
- break;
- //客户来源
- case Constants.chooseType.cusFrom:
- data = {
- id: item.dataId,
- name: item.dataValue,
- code: item.dataCode
- }
- 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.inventorySku:
- data = {
- id: item.whId,
- name: item.whName,
- item: item
- }
- break;
- // 品牌
- case Constants.chooseType.brand:
- data = {
- id: item.brandId,
- name: item.brandName
- }
- break;
- // 系统数据
- case Constants.chooseType.kindData:
- data = {
- id: item.kindCode,
- name: item.kindName
- }
- break;
- // 数据字典
- case Constants.chooseType.dictionary:
- data = {
- id: item.dataId,
- name: item.dataValue,
- dictCode: item.dictCode,
- dataCode: item.dataCode,
- flgDefault: item.flgDefault,
- }
- break;
- // 系统数据
- case Constants.chooseType.kindType:
- data = {
- id: item.id,
- name: item.kindName,
- kindType: item.kindType,
- kindCode: item.kindCode,
- 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) {
- params.flgValid = true
- // 字典类别
- if (this.data.dictCode) {
- params.dictCode = this.data.dictCode
- }
- // 系统数据
- if (this.data.kindType) {
- params.kindType = this.data.kindType
- }
- console.log('eee',this.data.chooseRoute);
- let chooseType = this.data.chooseRoute.type;
- // 供应商
- if (chooseType == Constants.chooseType.supplier) {
- params.supType = "";
- let active = this.data.active
- params.supType = Constants.kindCode.supplierPur;
-
- if (active == 1) { //采购供应商
- params.supType = Constants.kindCode.supplierPur;
- } else if (active == 2) { //服务供应商
- params.supType = Constants.kindCode.supplierService;
- }
- }
- //跟据非标号公司skuid判断库存
- if (chooseType == Constants.chooseType.inventorySku) {
- console.log('globalData', app.globalData)
- params.skuId = this.data.item.skuId
- params.nonStdCode = this.data.item.nonStdCode
- params.cpId = app.globalData.company.cpId
- }
- if (chooseType == Constants.chooseType.saleChannel) {
- params.dataSourceCode = Constants.chooseType.saleChannel
- }
- if (chooseType == Constants.chooseType.cusFrom) {
- params.dataSourceCode = Constants.chooseType.cusFrom
- }
- if(chooseType == Constants.chooseType.inventorySku){
- params.flgValid = true
- }
- if(chooseType == Constants.chooseType.warehouse){
- params.flgValid = true
- }
- return params
- },
- /**
- * @desc : 删除已选
- * @date : 2024年3月26日
- * @author : 周兴
- */
- delChoosed(e) {
- let choosedData = this.data.choosedData;
- choosedData = choosedData.filter((it, index) => index != e.detail.index)
- this.setData({
- choosedData: choosedData
- })
- },
- /**
- * @desc : 查询数据
- * @date : 2024年3月23日
- * @author : 周兴
- */
- getData(params) {
- console.log('this.data.routeObjName', this.data.method)
- 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) {
- let route = this.data.chooseRoute;
- if (!route || !route.type) {
- return;
- }
- let title;
- // 读取传入的单据类型
- let chooseType = route.type
- switch (chooseType) {
- // 角色
- case Constants.chooseType.role:
- title = "角色"
- this.setData({
- addUrl: '/package-basic-data/pages/role/add/add',
- routeObjName: 'common',
- method: 'getRole',
- title: 'roleName',
- chooseFlag: route.chooseFlag,
- contentList: [{
- name: 'roleCode',
- title: '编码'
- },],
- placeholder: ['roleName']
- })
- break;
- // 部门
- 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.saleChannel:
- title = "销售渠道"
- this.setData({
- routeObjName: 'common',
- method: 'getInitData',
- title: 'channelName',
- placeholder: ['channelName']
- })
- break;
- //客户来源
- case Constants.chooseType.cusFrom:
- title = "客户来源"
- this.setData({
- routeObjName: 'common',
- method: 'getInitData',
- title: 'dataValue',
- contentList: [{
- name: 'dataCode',
- title: '来源编码'
- },
- {
- name: 'dataValue',
- title: '来源名称'
- },
- ],
- placeholder: ['sourceName']
- })
- break;
- //销售渠道
- case Constants.chooseType.saleChannel:
- title = "销售渠道"
- this.setData({
- routeObjName: 'common',
- method: 'getInitData',
- title: 'channelName',
- placeholder: ['channelName']
- })
- 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: '供应商地址'
- },
- {
- name: 'payableResidue',
- title: '剩余应付'
- },
- {
- name: 'paymentResidue',
- 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.inventorySku:
- title = "库存"
- this.setData({
- routeObjName: 'common',
- method: 'getInventory',
- title: 'skuName',
- contentList: [
- {
- name: 'skuCode',
- title: '商品编码'
- },
- {
- name: 'whName',
- title: '库区'
- },
- {
- name: 'nonStdCode',
- title: '非标号'
- },
- {
- name: 'usableQty',
- title: '可售量'
- },
- {
- name: 'invQty',
- title: '库存量'
- },
- {
- name: 'outingQty',
- title: '占库量'
- },
- {
- name: 'freezeQty',
- title: '冻结量'
- },
-
-
- ],
- placeholder: ['whName']
- })
- break;
- // 品牌
- case Constants.chooseType.brand:
- title = "品牌"
- this.setData({
- addUrl: '/package-basic-data/pages/product-attribute/product-attribute',
- routeObjName: 'common',
- method: 'goodsBrandListBy',
- chooseFlag: route.chooseFlag,
- repeatFlag: route.repeatFlag,
- title: 'brandName',
- contentList: [{
- name: 'brandCode',
- title: '品牌编码'
- },
- {
- name: 'brandName',
- title: '品牌名称'
- },
- ],
- placeholder: ['brandName']
- })
- 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,
- repeatFlag: route.repeatFlag,
- valueKey: 'dataId',
- title: 'dataValue',
- contentList: [{
- name: 'dataCode',
- title: '数据编码'
- },
- {
- name: 'dictCode',
- title: '字典项目'
- },
- ],
- placeholder: ['orgName']
- })
- break;
- // 系统数据
- case Constants.chooseType.kindData:
- title = "系统数据"
- this.setData({
- routeObjName: 'common',
- method: 'getDataKind',
- kindType: route.kindType,
- valueKey: 'kindCode',
- title: 'kindName',
- chooseFlag: route.chooseFlag,
- repeatFlag: route.repeatFlag,
- contentList: [{
- name: 'kindCode',
- title: '数据代码'
- },
- {
- name: 'kindName',
- title: '数据名称'
- },
- ],
- placeholder: ['sensitiveName']
- })
- 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: '供应商',
- value: 1,
- },
- {
- code: 'customer',
- title: '客户',
- value: 2
- }
- ]
- },
- ],
- 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();
- },
- })
|