| /***************************************************************************************** | 
|  **  Author:jxx 2022 | 
|  **  QQ:283591387 | 
|  **完整文档见:http://v2.volcore.xyz/document/api 【代码生成页面ViewGrid】 | 
|  **常用示例见:http://v2.volcore.xyz/document/vueDev | 
|  **后台操作见:http://v2.volcore.xyz/document/netCoreDev | 
|  *****************************************************************************************/ | 
| //此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码 | 
|   | 
| // import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue"; | 
| import gridBody from "./extend/SupplementationData.vue" | 
| let extension = { | 
|   components: { | 
|     //查询界面扩展组件 | 
|     gridHeader: '', | 
|     gridBody: gridBody, | 
|     gridFooter: '', | 
|     //新建、编辑弹出框扩展组件 | 
|     modelHeader: '', | 
|     modelBody: '', | 
|     modelFooter: '' | 
|   }, | 
|   tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写) | 
|   buttons: { view: [], box: [], detail: [] }, //扩展的按钮 | 
|   methods: { | 
|     //下面这些方法可以保留也可以删除 | 
|     onInit() { | 
|       //框架初始化配置前, | 
|       let OutBoundBtn = this.buttons.find((x) => x.value == 'OutBound') | 
|       if (OutBoundBtn) { | 
|         OutBoundBtn.onClick = function () { | 
|           // this.$Message.success('点击了按钮') | 
|           let row = this.$refs.table.getSelected() //获取选中的行 | 
|           if (row <= 0) { | 
|             //如果没有选中行 | 
|             this.$Message.error('请选择一行数据') | 
|             return | 
|           } | 
|           let locationCode = row[0].locationCode | 
|           let palletCode = row[0].palletCode | 
|           this.http | 
|             .get( | 
|               `/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`, | 
|               {}, | 
|               '正在创建任务' | 
|             ) | 
|             .then((res) => { | 
|               //示例:调用后台接口 | 
|               if (res.status) { | 
|                 this.$Message.success('创建任务成功') | 
|                 this.refresh() //刷新表格 | 
|               } else { | 
|                 this.$Message.error(res.message) //错误提示 | 
|               } | 
|             }) | 
|         } | 
|       } | 
|   | 
|       var btnSupplementationData = this.buttons.find(x => x.value == "SupplementationData"); | 
|             if (btnSupplementationData != null) { | 
|                 btnSupplementationData.onClick = () => { | 
|                     let rows = this.$refs.table.getSelected(); | 
|                         if (rows.length == 0) { | 
|                             return this.$error("请选择数据!"); | 
|                         } else if (rows.length > 1) { | 
|                             return this.$error("只能选择单条数据"); | 
|                         } | 
|                         this.$refs.gridBody.open(rows[0].palletCode); | 
|                         this.refresh(); | 
|                     } | 
|                  | 
|                 } | 
|       //示例:在按钮的最前面添加一个按钮 | 
|       // this.buttons.unshift({ | 
|       //   //也可以用push或者splice方法来修改buttons数组 | 
|       //   name: '直接出库', //按钮名称 | 
|       //   icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档) | 
|       //   type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button | 
|       //   onClick: function () { | 
|       //     this.$Message.success('点击了按钮') | 
|       //     let row = this.$refs.table.getSelected() //获取选中的行 | 
|       //     if (row <= 0) { | 
|       //       //如果没有选中行 | 
|       //       this.$Message.error('请选择一行数据') | 
|       //       return | 
|       //     } | 
|       //     let locationCode = row[0].locationCode | 
|       //     let palletCode = row[0].palletCode | 
|       //     this.http.get(`/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`, {}, "正在创建任务").then((res) => { | 
|       //       //示例:调用后台接口 | 
|       //       if (res.status) { | 
|       //         this.$Message.success('创建任务成功') | 
|       //       } else { | 
|       //         this.$Message.error(res.message) //错误提示 | 
|       //       } | 
|       //     }) | 
|       //   } | 
|       // }) | 
|   | 
|       //示例:设置修改新建、编辑弹出框字段标签的长度 | 
|       this.boxOptions.labelWidth = 150 | 
|   | 
|       // this.columns.push({ | 
|       //   title: "操作", | 
|       //   field: "操作", | 
|       //   width: 150, | 
|       //   align: "left", // 'center', | 
|       //   render: (h, { row, column, index }) => { | 
|       //     return ( | 
|       //       <div> | 
|       //         <el-button | 
|       //           onClick={($e) => { | 
|       //             this.$refs.gridHeader.openModel1(row); | 
|       //           }} | 
|       //           type="primary" | 
|       //           plain | 
|       //           style="height:26px; padding: 10px !important;" | 
|       //         > | 
|       //           查看库存明细 | 
|       //         </el-button> | 
|       //       </div> | 
|       //     ); | 
|       //   }, | 
|       // }); | 
|   | 
|       this.columns.forEach((column) => { | 
|         //修改颜色 | 
|         if (column.field == 'roadwayNo') { | 
|           column.formatter = (row) => { | 
|             // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>' | 
|             return  row?.locationInfo?.roadwayNo  | 
|           } | 
|         } | 
|         //格式化日期 | 
|         // 检查当前列的字段是否为 'locationStatus' | 
|         if (column.field == 'locationStatus') { | 
|           // 使用对象字面量来映射 'locationStatus' 的值和对应的文本 | 
|           const statusMap = { | 
|             '-1': '全部', | 
|             '0': '空闲', | 
|             '1': '锁定', | 
|             '2': '有货', | 
|             '3': '有货禁用', | 
|             '4': '无货禁用' | 
|           }; | 
|           // 定义一个格式化函数,根据 'locationStatus' 的值返回相应的文本 | 
|           column.formatter = (row) => { | 
|             // 使用 statusMap 对象来获取对应的文本,如果没有匹配则返回 '未知状态' | 
|             return statusMap[row?.locationInfo?.locationStatus] || '未知状态'; | 
|           } | 
|         } | 
|       }) | 
|     }, | 
|     onInited() { | 
|       //框架初始化配置后 | 
|       //如果要配置明细表,在此方法操作 | 
|       //this.detailOptions.columns.forEach(column=>{ }); | 
|     }, | 
|     searchBefore(param) { | 
|       //界面查询前,可以给param.wheres添加查询参数 | 
|       //返回false,则不会执行查询 | 
|       return true | 
|     }, | 
|     searchAfter(result) { | 
|       //查询后,result返回的查询数据,可以在显示到表格前处理表格的值 | 
|       return true | 
|     }, | 
|     addBefore(formData) { | 
|       //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值 | 
|       return true | 
|     }, | 
|     updateBefore(formData) { | 
|       //编辑保存前formData为对象,包括明细表、删除行的Id | 
|       return true | 
|     }, | 
|     rowClick({ row, column, event }) { | 
|       //查询界面点击行事件 | 
|       // this.$refs.table.$refs.table.toggleRowSelection(row) //单击行时选中当前行; | 
|     }, | 
|     modelOpenAfter(row) { | 
|       //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据 | 
|       //(1)判断是编辑还是新建操作: this.currentAction=='Add'; | 
|       //(2)给弹出框设置默认值 | 
|       //(3)this.editFormFields.字段='xxx'; | 
|       //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值 | 
|       //看不懂就把输出看:console.log(this.editFormOptions) | 
|     } | 
|   } | 
| } | 
| export default extension |