| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 |
- /*******************************************************************************
- * Copyright(c) 2022 dongke All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 于继渤 2022-5-28 1.00 筛选多选标签
- * 作者 日期 版本 修改内容
- * 于继渤 2022-5-31 1.01 完善抛出事件
- *******************************************************************************/
- const app = getApp()
- const Constants = require('../../../utils/Constants.js');
- const api = require('../../../utils/api.js');
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- typeName: {
- type: String,
- default: ''
- },
- oneSelectFlag: {
- type: Boolean,
- default: false
- },
- show: {
- type: Boolean,
- default: true,
- observer: function (newVal) {
- let show = this.properties.show
- if (show) {
- let stowList = this.data.stowList;
- let moreList = this.data.moreList;
- if (stowList.length == 0 && moreList.length == 0) {
- let dataSourceCode = this.data.dataSourceCode
- let typeName = this.data.typeName
- // 从数据库中取值
- if (this.data.loadDataFlag) {
- this.getData(dataSourceCode).then(res => {
- // 赋值逻辑
- let list = res.data
- list.forEach(function(item){
- if(!item.id){
- item.id = item.code
- }
- })
- if (list == null || list.length <= 0) return
- list.forEach(item => {
- item.infotype = 'default'
- })
- if (list.length > 4) {
- //收起内容(不包含前4个)
- stowList = list.slice(5, list.length - 1)
- moreList = list.slice(0, 4)
- } else {
- //更多 前4个
- moreList = list
- }
- this.setData({
- stowList: stowList,
- moreList: moreList
- })
- })
- }
- }
- }
- }
- }
- },
- options: {
- multipleSlots: true, //插槽
- },
- /**
- * 组件的初始数据
- */
- data: {
- stowList: [],
- moreList: [],
- dataList: [],
- dataListTemp: [],
- loadDataFlag: true, // 是否从数据库加载数据
- },
- /**
- * 组件生命周期
- */
- lifetimes: {
- attached: function () {
- let dataSourceCode = ''
- let typeName = this.data.typeName
- let name = ''
- if (typeName === 'other') {
- dataSourceCode = 'other'
- name = '其他'
- }
- if (typeName === 'salesChannel') {
- dataSourceCode = 'salesChannel'
- name = '销售渠道'
- }
- if (typeName === 'org') {
- dataSourceCode = 'org'
- name = '业务部门'
- }
- //收付款类型
- if (typeName === 'rpType') {
- dataSourceCode = 'rpType'
- name = '收付款类型'
- let stowList = [{
- name: '收款',
- id: '收付款类型-收款',
- infotype: 'default'
- },
- {
- name: '付款',
- id: '收付款类型-付款',
- infotype: 'default'
- },
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //业务员
- if (typeName === 'staff') {
- dataSourceCode = 'staff'
- name = '业务员'
- }
- //入库类型
- if (typeName === 'intoType') {
- dataSourceCode = 'intoType'
- name = '入库类型'
- let stowList = [{
- name: '采购入库',
- id: '入库类型-采购入库',
- infotype: 'default'
- },
-
- {
- name: '销退入库',
- id: '入库类型-销退入库',
- infotype: 'default'
- },
- {
- name: '其他入库',
- id: '入库类型-其他入库',
- infotype: 'default'
- },
-
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //出库进度
- if (typeName === 'outStatus') {
- dataSourceCode = 'outStatus'
- name = '出库进度'
- let stowList = [{
- name: '未出库',
- id: 0,
- infotype: 'default'
- },
- {
- name: '出库中',
- id: 1,
- infotype: 'default'
- },
- {
- name: '已出库',
- id: 2,
- infotype: 'default'
- },
- {
- name: '有退货',
- id: 3,
- infotype: 'default'
- }
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //入库类型
- if (typeName === 'receiptType') {
- dataSourceCode = 'entryType'
- name = '入库类型'
- }
- //入库原因
- if (typeName === 'intoReason') {
- dataSourceCode = 'inReason'
- name = '入库原因'
- let stowList = [{
- name: '盘盈入库',
- id: '10112024-0314-0000-0000-000010d79635',
- infotype: 'default'
- },
-
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //出库类型
- if (typeName === 'outType') {
- dataSourceCode = 'outType'
- name = '出库类型'
- let stowList = [{
- name: '销售出库',
- id: '出库类型-销售出库',
- infotype: 'default'
- },
-
- {
- name: '采退出库',
- id: '出库类型-采退出库',
- infotype: 'default'
- },
- {
- name: '其他出库',
- id: '出库类型-其他出库',
- infotype: 'default'
- },
-
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //出库原因
- if (typeName === 'outReason') {
- dataSourceCode = 'outReason'
- name = '出库原因'
- let stowList = [{
- name: '破损出库',
- id: '10112024-0312-0000-0000-00000f5759fd',
- infotype: 'default'
- },
-
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //采购入库状态
- if (typeName === 'inInventoryStatus') {
- dataSourceCode = 'inInventoryStatus'
- name = '入库状态'
- let stowList = [{
- name: '待入库',
- id: 0,
- infotype: 'default'
- },
- {
- name: '已入库',
- id: 1,
- infotype: 'default'
- }
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //采购状态
- if (typeName === 'purchaseStatus') {
- dataSourceCode = 'purchaseStatus'
- name = '采购状态'
- let stowList = [{
- name: '暂存',
- id: 0,
- infotype: 'default'
- },
- {
- name: '成交',
- id: 1,
- infotype: 'default'
- },
- {
- name: '出库中',
- id: 2,
- infotype: 'default'
- },
- {
- name: '待入库',
- id: 3,
- infotype: 'default'
- },
- {
- name: '已入库',
- id: 4,
- infotype: 'default'
- }
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- //退货状态
- if (typeName === 'outInventoryStatus') {
- dataSourceCode = 'outInventoryStatus'
- name = '退货状态'
- let stowList = [{
- name: '审批中',
- id: 0,
- infotype: 'default'
- },
- {
- name: '未出库',
- id: 1,
- infotype: 'default'
- },
- {
- name: '已出库',
- id: 2,
- infotype: 'default'
- },
- {
- name: '已退货',
- id: 3,
- infotype: 'default'
- }
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
-
- if (typeName === 'purchaseAccordingStatus') {
- dataSourceCode = 'purchaseAccordingStatus'
- name = '采购状态'
- let stowList = [
- {
- name: '成交',
- id: 0,
- infotype: 'info'
- },
- {
- name: '出库中',
- id: 1,
- infotype: 'default'
- }
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
-
- //收款进度
- if (typeName === 'receiveStatus') {
- dataSourceCode = 'receiveStatus'
- name = '收款进度'
- let stowList = [{
- name: '未收款',
- id: 0,
- infotype: 'default'
- },
- {
- name: '部分收款',
- id: 1,
- infotype: 'default'
- },
- {
- name: '收款完成',
- id: 2,
- infotype: 'default'
- }
- ];
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
-
- //客户接待
- if (typeName === 'followStatus') {
- dataSourceCode = 'followStatus'
- name = '接待类型'
- let stowList = [{
- name: '留资接待',
- id: 0,
- infotype: 'default'
- },
- {
- name: '陌生接待',
- id: 1,
- infotype: 'default'
- }
- ]
- this.setData({
- moreList: stowList,
- moreFlag: false,
- loadDataFlag: false
- })
- }
- this.setData({
- dataSourceCode: dataSourceCode,
- name: name
- })
- },
- detached: function () {
- // 在组件实例被从页面节点树移除时执行
- },
- },
- /**
- * 组件的方法列表
- */
- methods: {
- /**
- * @desc : 筛选更多触发事件
- * @author : 于继渤
- * @date : 2022/5/28 08:50
- */
- onChangeMore(e) {
- if (this.data.stowList.length == 0) {
- return
- }
- this.setData({
- moreFlag: !this.data.moreFlag
- })
- },
- /**
- * @desc : 点击标签事件
- * @author : 于继渤
- * @date : 2022/5/28 08:50
- */
- onClickTag(e) {
- let key = e.currentTarget.dataset.key
- let typekey = e.currentTarget.dataset.typekey
- let index = e.currentTarget.dataset.index
- let moreList = this.data.moreList
- let stowList = this.data.stowList
- if (key === 'more') {
- if (moreList[index].infotype === 'default') {
- moreList[index].infotype = 'info'
- } else if (moreList[index].infotype === 'info') {
- moreList[index].infotype = 'default'
- }
- }
- if (key === 'stow') {
- if (stowList[index].infotype === 'default') {
- stowList[index].infotype = 'info'
- } else if (stowList[index].infotype === 'info') {
- stowList[index].infotype = 'default'
- }
- }
- this.setData({
- moreList: moreList,
- stowList: stowList
- })
- let dataList = this.data.dataList
- if (moreList.length > 0) {
- moreList.forEach(res1 => {
- if (res1.infotype === 'info') {
- dataList.push(res1)
- }
- })
- }
- if (this.data.oneSelectFlag) {
- moreList.forEach(itt => {
- if (itt.name == moreList[index].name) {
- itt.infotype = 'info'
- } else {
- itt.infotype = 'default'
- }
- })
- this.setData({
- moreList: moreList
- })
- }
- if (stowList.length > 0) {
- stowList.forEach(res2 => {
- if (res2.infotype === 'info') {
- dataList.push(res2)
- }
- })
- }
- let dataListTemp = []
- dataList.forEach(res3 => {
- if (res3.infotype == 'info') {
- dataListTemp.push(res3.id)
- }
- })
- dataList = dataList.filter((item, index) => {
- return dataList.indexOf(item) === index
- })
- this.triggerEvent('onClickTag', {
- dataList: Array.from(new Set(dataListTemp)),
- key: typekey
- })
- },
- /**
- * @desc : 重置事件
- * @author : 于继渤
- * @date : 2022/5/28 08:50
- */
- clearForm() {
- let moreList = this.data.moreList
- let stowList = this.data.stowList
- if (moreList.length > 0) {
- moreList.forEach(res => {
- res.infotype = 'default'
- })
- }
- if (stowList.length > 0) {
- stowList.forEach(res => {
- res.infotype = 'default'
- })
- }
- this.setData({
- moreList: moreList,
- stowList: stowList,
- dataList: []
- })
- },
- /**
- * @desc : 筛选数据源获取
- * @author : 于继渤
- * @date : 2022/5/28 08:50
- */
- getData(dataSourceCode) {
- let param = {
- dataSourceCode: dataSourceCode
- }
- return new Promise((resolve, reject) => {
- api.request(Constants.BASIC_COMMON_API + 'get_wx_init_data', 'POST', param).then(res => {
- if (res.data.code === 200) {
- resolve(res.data)
- } else {
- reject(res.data)
- }
- })
- })
- },
- }
- })
|