Przeglądaj źródła

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-mini-web

# Conflicts:
#	src/locale/lang/zh-CN.js
koushanshan 2 lat temu
rodzic
commit
360f314198

+ 2 - 0
src/api/pages/common/common.js

@@ -109,6 +109,8 @@ export default {
     getGoodsForPurchaseReturnByPage:'get_goods_for_purchase_return_by_page',
     //获取员工的范围权限类型
     getPurviewType:'get_purview_type',
+    //获取基础数据
+    getInitData:'get_init_data',
   },
 }
 

+ 4 - 0
src/api/pages/fin/money-transfer.js

@@ -6,6 +6,8 @@
 export default {
   moneyTransferService:{
     prefix: '/mdm-server/mac/transfer/',
+    selectMacTransferInfoById: 'select_mac_transfer_info_by_id',
+    getMacTransferForUpdate: 'get_mac_transfer_for_update',
   }
 }
 
@@ -16,6 +18,8 @@ export default {
  */
 export const routeUrl = {
   moneyTransfer:{
+    add: {key: 'add', routeName: 'money-transfer-add'},
+    edit: {key: 'edit', routeName: 'money-transfer-edit'},
     invalid: {key: 'invalid', method: 'invalid'},
   }
 }

+ 2 - 1
src/api/pages/mst/cus-follow.js

@@ -5,7 +5,8 @@
  */
 export default {
   cusFollowService: {
-    prefix: '/mdm-server/core/customerFollow/',
+    prefix: '/mdm-server/mst/cusFollow/',
+    updateMeasure:'update_measure',
   }
 }
 

+ 2 - 1
src/api/pages/mst/customer.js

@@ -5,7 +5,8 @@
  */
 export default {
   customerService: {
-    prefix: '/mdm-server/core/customer/',
+    prefix: '/mdm-server/mst/customer/',
+    selectByCondNoPage:'select_by_cond_no_page',
   }
 }
 

+ 1 - 0
src/api/pages/mst/goods-series.js

@@ -6,6 +6,7 @@
 export default {
   goodsSeriesService:{
     prefix: '/mdm-server/mst/goodsSeries/',
+    getGoodsSeriesList: 'list_by_nopage',
   }
 }
 

+ 4 - 2
src/api/pages/mst/goods.js

@@ -5,6 +5,8 @@
  */
 export default {
   goodsService:{
+    prefix: '/mdm-server/mst/goodsSku/',
+
   }
 }
 
@@ -15,7 +17,7 @@ export default {
  */
 export const routeUrl = {
   goods:{
-    // add: {key: 'add', routeName: 'goods-add'},
-    // edit: {key: 'edit', routeName: 'add'},
+     add: {key: 'add', routeName: 'goods-add'},
+     edit: {key: 'edit', routeName: 'goods-edit'},
   }
 }

+ 6 - 0
src/config/index.js

@@ -319,6 +319,10 @@ export default {
     income:'t_mac_other_receivable',
     // 其他支出单
     outlay:'t_mac_other_payable',
+    // 冻结单
+    freezed:'t_psi_freeze',
+    // 商品档案
+    sku:'t_mst_goods_sku',
   },
   /**
    *   @desc   : 在产盘点盘点状态
@@ -676,6 +680,8 @@ export default {
     moneyAccount: 'moneyAccount',
     //数据自动
     dictionaryData: 'dictionaryData',
+    // 商品种类
+    goodsCategory:'goodsCategory',
   },
 
   /**

+ 22 - 1
src/locale/lang/zh-CN.js

@@ -542,7 +542,28 @@ export const columns = {
   outboundObjectName:'出库对象',
   outQuantity:'出库数量',
   outAmount:'出库金额',
-
+  macTransfer:'资金转账',
+  trfTypeName:'转账类型',
+  series:'商品系列',
+  category:'商品种类',
+  unit:'计量单位',
+  goodsAttribute:'商品属性',
+  baseAttribute:'基础属性',
+  conversionFactor:'单位换算',
+  subUnit:'辅助单位',
+  priceItem:'价格信息',
+  priceWholesale:'批发价',
+  priceLimited:'销售限价',
+  intention: '客户意向',
+  stayTimeLen: '留店时长',
+  followData: '跟进内容',
+  nextFollowTime:'提醒时间',
+  allReceipt:'全部接待',
+  followTask2: '跟进任务',
+  flgAgainMeasure:'是否复尺',
+  measureRemarks:'量尺备注',
+  measureTime: '量尺时间',
+  usedLocation2: '空间名称',
 }
 
 /**

+ 11 - 5
src/view/fin/money-account/index.vue

@@ -96,9 +96,9 @@ export default {
         flgNegative: true,
         remarks: null,
         accDate: new Date(),
+        orgId: self.$store.state.user.orgId,
+        staffId: self.$store.state.user.id,
         makeStaff: self.$store.state.user.id,
-        orgId: this.$store.state.user.orgId,
-        staffId: this.$store.state.user.id,
       },
       //查询
       searchContent: [
@@ -175,10 +175,16 @@ export default {
      */
     saveData() {
       this.params.accDate = new Date(this.params.accDate).toDateStr();
-      if (this.modalParams.button === this.$config.formMode.edit) {
-        return this.excute(this.$service.moneyAccountService, this.$service.moneyAccountService.update, this.params);
-      } else {
+      if (this.modalParams.button === this.$config.formMode.add) {
         return this.excute(this.$service.moneyAccountService, this.$service.moneyAccountService.insert, this.params);
+      } else {
+        let otherData = {
+          orgId: this.$store.state.user.orgId,
+          staffId: this.$store.state.user.id,
+          makeStaff: this.$store.state.user.id
+        }
+        Object.assign(this.params, this.params, otherData)
+        return this.excute(this.$service.moneyAccountService, this.$service.moneyAccountService.update, this.params);
       }
     },
   },

+ 7 - 6
src/view/fin/money-transfer/add.vue

@@ -1,13 +1,14 @@
 <template>
-
+  <CommonForm type="add" ></CommonForm>
 </template>
 
 <script>
+import CommonForm from './form'
+
 export default {
-  name: "add"
+  name: 'money-transfer-add',
+  components:{
+    CommonForm
+  },
 }
 </script>
-
-<style scoped>
-
-</style>

+ 7 - 6
src/view/fin/money-transfer/edit.vue

@@ -1,13 +1,14 @@
 <template>
-
+  <CommonForm type="edit" ></CommonForm>
 </template>
 
 <script>
+import CommonForm from './form'
+
 export default {
-  name: "edit"
+  name: 'money-transfer-add',
+  components:{
+    CommonForm
+  }
 }
 </script>
-
-<style scoped>
-
-</style>

+ 215 - 5
src/view/fin/money-transfer/form.vue

@@ -1,13 +1,223 @@
+<!-- @desc:销售订单新建  @auth:付斌  @time:2024/02/20 15:15 -->
 <template>
 
+  <div class="main-div" style="position: relative;">
+    <DkCollapse @on-change="changeCollapse" ref="collapse">
+      <DkPanel prop="essentialInformation">
+        <!--  单据信息  -->
+        <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords="6" style="width:100%">
+          <DkFormItem prop="trfNo">
+            <InputPop v-model="formData.trfNo" :readonly="true"/>
+          </DkFormItem>
+          <DkFormItem prop="orgId" :label="$t('orgId')">
+            <SelectMagnifier v-model="formData.orgId" :display-text="formData.orgName"
+                             :type="this.$config.MagnifierType.org" :multiple="false"/>
+          </DkFormItem>
+          <DkFormItem prop="staffId" :label="$t('staffId')">
+            <SelectMagnifier v-model="formData.staffId" :display-text="formData.staffName"
+                             :type="this.$config.MagnifierType.staff" :multiple="false"/>
+          </DkFormItem>
+          <DkFormItem prop="accDate" :label="$t('trfDate')" :data-type="$config.dataType.date">
+            <DatePickerPop v-model="formData.accDate" :short-cut-flag="true"/>
+          </DkFormItem>
+          <DkFormItem prop="remarks">
+            <InputPop v-model="formData.remarks" textareaFlag/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <!--资金转账-->
+      <DkPanel prop="macTransfer">
+        <div id="search-cond-div-transfer-info" ref="search-cond-div-goods-info" slot="content">
+          <EditTable ref="transferTable" :data="formData.itemList" showFooter
+                     major-field="trfId"
+                     :new-row-flag="true"
+                     :columns="transferColumns"/>
+        </div>
+      </DkPanel>
+      <!--附件-->
+      <DkPanel prop="files">
+        <div id="search-cond-div-files-info" ref="search-cond-div-files-info" slot="content">
+          <DkPicWall v-model="formData.annexPaths" :table="$config.tables.macTransfer"
+                     :accept="$config.uploadFileConfig.acceptPicType" :format="['jpg','jpeg','png']"></DkPicWall>
+        </div>
+      </DkPanel>
+    </DkCollapse>
+    <!--      下部分按钮区域-->
+    <DkSaveButton ref="saveButton" :loading="loading" @save="save(true)" @close="close"/>
+  </div>
 </template>
 
 <script>
+import {formMixin} from '@/mixins/form'
+
 export default {
-  name: "form"
+  components: {},
+  mixins: [formMixin],
+  data() {
+    let self = this
+    return {
+      loading: false,
+      macList: [],  // 资金账户
+      formData: {
+        trfNo: null,
+        trfInMac: null,
+        trfOutMac: null,
+        amtTrf: null,
+        remarks: null,
+        annexPaths: null,
+        accDate: new Date(),
+        staffId: self.$store.state.user.id,
+        staffName: self.$store.state.user.staffName,
+        orgId: self.$store.state.user.orgId,
+        orgName: self.$store.state.user.orgName,
+        makeStaff: self.$store.state.user.id,
+      },
+      transferColumns: [
+        {
+          field: 'trfOutMac',
+          type: 'select',
+          options: () => self.macList,
+          labelKey: 'macName',
+          valueKey: 'macId',
+          searchDetailFlag: true,
+        },
+        {
+          field: 'trfInMac',
+          type: 'select',
+          options: () => self.macList,
+          labelKey: 'macName',
+          valueKey: 'macId',
+          searchDetailFlag: true,
+        },
+        //转账金额
+        {
+          field: 'amtTrf',
+          type: 'number',
+          digits: 2,
+          sum: true,
+        },
+        {field: 'remarks', type: 'text', equal: true},
+      ],
+    }
+  },
+  methods: {
+    /**
+     * @desc   : 加载数据
+     * @author : 付斌
+     * @date   : 2024-02-20 15:53
+     */
+    initData() {
+      this.getMacData();
+    },
+    /**
+     * @desc   :获取资金账户
+     * @author : 付斌
+     * @date   : 2024-04-01 14:01
+     */
+    getMacData() {
+      let params = {
+        'dictCode': this.$config.kindCode.basicIncome,
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getMac, params, false).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.macList = res.data
+        }
+      })
+    },
+    /**
+     * @desc   : 通过id查询
+     * @author : 付斌
+     * @date   : 2022/03/04 13:17
+     */
+    detail(id) {
+      return this.excuteNoParam(this.$service.moneyTransferService, this.$service.moneyTransferService.getMacTransferForUpdate, [id]);
+    },
+    /**
+     * @desc   : 编辑页面赋值
+     * @author : 付斌
+     * @date   : 2024-03-03 9:33
+     */
+    setValuesByEdit(data) {
+      if (data) {
+        this.formData = data["data"];
+        this.formData.itemList = data["dataItem"];
+      }
+    },
+    /**
+     * @desc   : 校验数据
+     * @author : 付斌
+     * @date   : 2024-03-11 14:37
+     */
+    validData() {
+      let itemTable = this.$refs['transferTable'].getTableDataFilter();
+      if (!itemTable || itemTable.length == 0) {
+        this.$Message.warning(this.$t('W_012'))
+        return false;
+      }
+      for (let it of itemTable) {
+        if (!it.amtTrf || it.amtTrf === '') {
+          this.$Message.warning(this.$t('W_042', {'param': '转账金额不能'}))
+          return false;
+        }
+      }
+      return true;
+    },
+    /**
+     * @desc   : 给参数赋值
+     * @author : 付斌
+     * @date   : 2023/6/25 14:31
+     */
+    setParams(arg) {
+      this.formData.accDate = new Date(this.formData.accDate).toDateStr();
+      // 修改新增的表数据
+      let itemTable = this.$refs['transferTable'].getTableDataFilter();
+      this.formData.itemList = itemTable
+      this.params = {...this.formData}
+    },
+    /**
+     * @desc   : 保存数据
+     * @author : 付斌
+     * @date   : 2023/6/25 14:31
+     */
+    saveData() {
+      if (this.type === this.$config.formMode.add) {
+        return this.excute(this.$service.moneyTransferService, this.$service.moneyTransferService.insert, this.params);
+      } else if (this.type === this.$config.formMode.edit) {
+        return this.excute(this.$service.moneyTransferService, this.$service.moneyTransferService.update, this.params)
+      }
+    },
+    /**
+     * @desc   :新建完毕后清空窗体
+     * @author : 付斌
+     * @date   : 2024-02-27 10:33
+     */
+    clear() {
+      let self = this
+      this.formData = {
+        trfNo: null,
+        trfInMac: null,
+        trfOutMac: null,
+        amtTrf: null,
+        remarks: null,
+        annexPaths: null,
+        accDate: new Date(),
+        staffId: self.$store.state.user.id,
+        staffName: self.$store.state.user.staffName,
+        orgId: self.$store.state.user.orgId,
+        orgName: self.$store.state.user.orgName,
+        makeStaff: self.$store.state.user.id,
+      }
+    },
+  }
+  ,
+  /**
+   * @desc   : 在实例创建完成后被立即同步调用
+   * @author : 付斌
+   * @date   : 2022/3/3 10:32
+   */
+  created() {
+    this.focusItem = 'trfId';    // 给第一个组件赋值,可以在混入中自动去聚焦
+    this.primaryKey = 'trfId'  // 设置主键Id
+  }
 }
 </script>
-
-<style scoped>
-
-</style>

+ 79 - 118
src/view/fin/money-transfer/index.vue

@@ -21,77 +21,39 @@
                   :searchContent="searchContent"
       ></SearchCond>
     </div>
-    <!-- 表格   -->
-    <DkTable ref="table-select" name="table" :data="tableData" primaryKey="macId"
-             @pageChange="pageSizeChange"
-             :page-total="pageInfo.total"
-             :page-size="pageInfo.pageSize"
-             :page-size-opts="pageSizeOpts"
-             :current-page="pageInfo.currentPage"
-             :choose-flag="false"
-             :height="tableHeight" showFooter>
-      <DkTableColumn field="trfNo"></DkTableColumn>
-      <DkTableColumn field="trfInMacName"></DkTableColumn>
-      <DkTableColumn field="trfOutMacName"></DkTableColumn>
-      <DkTableColumn field="amtTrf" data-type="number" :digits="2" sum></DkTableColumn>
-      <DkTableColumn field="accDate" :title="$t('trfDate')" :dataType="$config.columnType.date"></DkTableColumn>
-      <DkTableColumn field="orgName"/>
-      <DkTableColumn field="staffName"/>
-      <DkTableColumn field="makeStaffName"/>
-      <DkTableColumn field="makeTime" data-type="dateTime"/>
-      <DkTableColumn field="flgValid" type="switch"/>
-      <DkTableColumn field="remarks"></DkTableColumn>
-    </DkTable>
-
-    <!--新建编辑-->
-    <DkModal :loading="loading"
-             v-model="editAddModal"
-             ref="modal_editAdd"
-             @on-visible-change="handleVisibleModal"
-             @modalOk="save"
-             @modalCancel="clear"
-             :saveFlag="true"
-             :title="modalTitle">
-      <DkForm ref="formInline" v-model="formData" :col-count="1" :label-max-words="8">
-        <DkFormItem prop="trfNo">
-          <InputPop v-model="formData.trfNo" :readonly="true"/>
-        </DkFormItem>
-        <DkFormItem prop="trfInMac" :required="true">
-          <SelectPop v-model="formData.trfInMac" ref="trfInMac" :options="macList" :multiple="false"
-                     labelKey="macName" valueKey="macId">
-          </SelectPop>
-        </DkFormItem>
-        <DkFormItem prop="trfOutMac" :required="true">
-          <SelectPop v-model="formData.trfOutMac" ref="trfOutMac" :options="macList" :multiple="false"
-                     labelKey="macName" valueKey="macId">
-          </SelectPop>
-        </DkFormItem>
-        <DkFormItem prop="amtTrf">
-          <InputNumberPop v-model="formData.amtTrf" :digits="2"/>
-        </DkFormItem>
-        <!--转账日期-->
-        <DkFormItem prop="accDate" :label="$t('trfDate')" :data-type="$config.dataType.date">
-          <DatePickerPop v-model="formData.accDate" :short-cut-flag="true"/>
-        </DkFormItem>
-        <!--业务部门-->
-        <DkFormItem prop="orgId" :label="$t('orgId')">
-          <SelectMagnifier v-model="formData.orgId" :display-text="formData.orgName"
-                           :type="this.$config.MagnifierType.org" :multiple="false"/>
-        </DkFormItem>
-        <!--业务员-->
-        <DkFormItem prop="staffId" :label="$t('staffId')">
-          <SelectMagnifier v-model="formData.staffId" :display-text="formData.staffName"
-                           :type="this.$config.MagnifierType.staff" :multiple="false"/>
-        </DkFormItem>
-        <DkFormItem prop="remarks">
-          <InputPop v-model="formData.remarks" textareaFlag/>
-        </DkFormItem>
-        <DkFormItem prop="files">
-          <DkPicWall v-model="formData.annexPaths" :table="$config.tables.macTransfer"
-                     :accept="$config.uploadFileConfig.acceptPicType"></DkPicWall>
-        </DkFormItem>
-      </DkForm>
-    </DkModal>
+    <!--  表格部分  -->
+    <DkSplit mode="vertical" v-model="split" :height="tableHeight">
+      <div slot="top" style="margin-left: 5px;">
+        <DkTable ref="table-select" name="table" :data="tableData" primaryKey="trfId"
+                 @pageChange="pageSizeChange"
+                 :page-total="pageInfo.total"
+                 :page-size="pageInfo.pageSize"
+                 :page-size-opts="pageSizeOpts"
+                 :current-page="pageInfo.currentPage"
+                 :choose-flag="false"
+                 @current-change="currentChange($event)"
+                 :height="this.tableHeight * split - 35" showFooter>
+          <DkTableColumn field="trfNo"></DkTableColumn>
+          <DkTableColumn field="trfTypeName"></DkTableColumn>
+          <DkTableColumn field="accDate" :title="$t('trfDate')" :dataType="$config.columnType.date"></DkTableColumn>
+          <DkTableColumn field="orgName"/>
+          <DkTableColumn field="staffName"/>
+          <DkTableColumn field="makeStaffName"/>
+          <DkTableColumn field="makeTime" data-type="dateTime"/>
+          <DkTableColumn field="flgValid" type="switch"/>
+          <DkTableColumn field="remarks"></DkTableColumn>
+        </DkTable>
+      </div>
+      <div slot="bottom">
+        <DkTable :id="'table-'+$options.name" ref="detail-select" :data="tableDataDetail_macTransferItem" showFooter
+                 :height="this.tableHeight * (1-split)" primaryKey="itemId" name="table">
+          <DkTableColumn field="trfInMacName"></DkTableColumn>
+          <DkTableColumn field="trfOutMacName"></DkTableColumn>
+          <DkTableColumn field="amtTrf" data-type="number" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="remarks"/>
+        </DkTable>
+      </div>
+    </DkSplit>
   </div>
 </template>
 
@@ -104,23 +66,8 @@ export default {
   data() {
     let self = this
     return {
-      // 资金账户
-      macList: [],
-      formData: {
-        trfNo: null,
-        trfInMac: null,
-        trfOutMac: null,
-        amtTrf: null,
-        remarks: null,
-        annexPaths: null,
-        accDate: new Date(),
-        staffId: self.$store.state.user.id,
-        staffName: self.$store.state.user.staffName,
-        orgId: self.$store.state.user.orgId,
-        orgName: self.$store.state.user.orgName,
-        makeStaff: self.$store.state.user.id,
-      },
-      //查询
+      tableData: [],
+      tableDataDetail_macTransferItem: [],
       searchContent: [
         {
           itemCode: '转账单号-文本',
@@ -209,46 +156,29 @@ export default {
       })
     },
     /**
-     * @desc   :获取资金账户
-     * @author : 付斌
-     * @date   : 2024-04-05 10:26
-     */
-    getMac() {
-      this.excute(this.$service.commonService, this.$service.commonService.getMac, {}).then(res => {
-        if (res.code === this.$config.SUCCESS_CODE) {
-          let list = this.searchContent.filter(it => it.valueFormat.code == 'staffIdList')
-          this.macList = res.data
-        }
-      })
-    },
-    /**
      * @desc   : 查询数据
      * @author : 付斌
      * @date   : 2024-02-20 15:53
      */
     getData(params) {
+      this.tableData = null;
+      this.tableDataDetail_macTransferItem = null;
       return this.excute(this.$service.moneyTransferService, this.$service.moneyTransferService.selectByCond, params)
     },
     /**
-     * @desc   : 根据ID查询数据
-     * @author : 付斌
-     * @date   : 2024/3/1 15:43
-     */
-    detail(id) {
-      return this.excuteNoParam(this.$service.moneyTransferService, this.$service.moneyTransferService.selectById, [id], false)
-    },
-    /**
-     * @desc   : 保存或编辑
+     * @desc   : 行改变事件
      * @author : 付斌
-     * @date   : 2024/3/4 17:12
+     * @date   : 2024-02-28 11:06
      */
-    saveData() {
-      this.params.accDate = new Date(this.params.accDate).toDateStr();
-      if (this.modalParams.button === this.$config.formMode.add) {
-        return this.excute(this.$service.moneyTransferService, this.$service.moneyTransferService.insert, this.params);
-      } else {
-        return this.excute(this.$service.moneyTransferService, this.$service.moneyTransferService.update, this.params);
-      }
+    currentChange({row}) {
+      this.loading = true
+      this.tableDataDetail_macTransferItem = null;
+      this.excuteNoParam(this.$service.moneyTransferService, this.$service.moneyTransferService.selectMacTransferInfoById, [row.trfId], false).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.tableDataDetail_macTransferItem = res.data.macTransferItem;
+        }
+        this.loading = false
+      })
     },
     /**
      * @desc   : 作废
@@ -274,6 +204,37 @@ export default {
       }
     },
     /**
+     * @desc   :校验按钮
+     * @author : 付斌
+     * @date   : 2024-03-09 16:58
+     */
+    openValidData(btnName, rows) {
+      if (btnName === 'edit') {
+        if (rows && rows.length > 0) {
+          if (rows[0].trfType === 0) {
+            this.$Message.warning(this.$t('W_007', {'param': '期初转账不允许编辑'}));
+            return false;
+          }
+          if (!rows[0].flgValid) {
+            this.$Message.warning(this.$t('W_007', {'param': '当前单据已作废'}));
+            return false;
+          }
+        }
+      } else if (btnName === 'invalid') {
+        if (rows && rows.length > 0) {
+          if (rows[0].trfType === 0) {
+            this.$Message.warning(this.$t('W_007', {'param': '期初转账不允许作废'}));
+            return false;
+          }
+          if (!rows[0].flgValid) {
+            this.$Message.warning(this.$t('W_007', {'param': '当前单据已作废'}));
+            return false;
+          }
+        }
+      }
+      return true;
+    },
+    /**
      * @desc   :清空窗体
      * @author : 付斌
      * @date   : 2024-02-27 10:33

+ 1 - 1
src/view/fin/other-payable/form.vue

@@ -182,7 +182,7 @@ export default {
       this.formData.orgName = this.$store.state.user.orgName
     },
     /**
-     * @desc   :
+     * @desc   :获取支出类别
      * @author : 付斌
      * @date   : 2024-04-01 14:01
      */

+ 1 - 1
src/view/fin/other-receivable/form.vue

@@ -186,7 +186,7 @@ export default {
       this.getDictionaryData();
     },
     /**
-     * @desc   :
+     * @desc   :获取收入类别
      * @author : 付斌
      * @date   : 2024-04-01 14:01
      */

+ 0 - 3
src/view/fin/payment/form.vue

@@ -162,9 +162,6 @@ export default {
       tableData_payable: null,
       negativeFlag: false,
       showEditTable: true,
-      //控制客户是否可以输入
-      readonlyFlag: true,
-      allCanNoEdit: false, //是否所有的都不允许编辑
       // 画面表单数据
       formData: {
         accDate: new Date(),

+ 0 - 3
src/view/fin/receipt/form.vue

@@ -168,9 +168,6 @@ export default {
       tableData_receivable: null,
       negativeFlag: false,
       showEditTable: true,
-      //控制客户是否可以输入
-      readonlyFlag: true,
-      allCanNoEdit: false, //是否所有的都不允许编辑
       // 画面表单数据
       formData: {
         accDate: new Date(),

+ 8 - 3
src/view/ivt/ivt-check/form.vue

@@ -22,7 +22,6 @@
             <SelectMagnifier v-model="formData.orgId" :display-text="formData.checkOrg"
                              :type="this.$config.MagnifierType.org"
                              @ok="orgOk"
-                             :disabled="checkColumnIsEdit('orgId')"
                              :multiple="false"/>
           </DkFormItem>
           <!--业务员-->
@@ -30,7 +29,6 @@
             <SelectMagnifier v-model="formData.staffId" :display-text="formData.checkStaff"
                              :type="this.$config.MagnifierType.staff"
                              @ok="staffOk"
-                             :disabled="checkColumnIsEdit('staffId')"
                              :multiple="false"/>
           </DkFormItem>
           <!--备注-->
@@ -302,7 +300,14 @@ export default {
      * @date   : 2024/3/21 16:25
      */
     checkColumnIsEdit(field) {
-      return false;
+      if(this.type === this.$config.formMode.edit){
+        return true;
+      }
+      else
+      {
+        return false;
+      }
+
     },
 
     /**

+ 1 - 0
src/view/mst/basic-data/index.vue

@@ -375,6 +375,7 @@ export default {
       }
       this.excute(this.$service.commonService, this.$service.commonService.getDataKind, params).then(res => {
         if (res.code === this.$config.SUCCESS_CODE) {
+          console.log('1111111',res.data,res.data.list)
           this.leftData = res.data
           if (this.leftData.size() > 0) {
             this.kindCode = this.leftData[0].kindCode

+ 333 - 196
src/view/mst/cus-follow/index.vue

@@ -24,15 +24,17 @@
     <card style="padding: 0">
       <DkTabs ref="tab" v-model="tabsModel" :options="tabsOptions" @on-click="clickTab"></DkTabs>
       <DkTable :id="'table-'+$options.name" ref="table-select" :data="tableData"
-               :height="this.tableHeight-50" :primaryKey="tabsModel===$t('followTask2')?'planId':'followId'"
-               @pageChange="pageSizeChange"
+               :height="this.tableHeight-50"
+               primaryKey="followId"
+               :page-size-opts="pageSizeOpts"
                :page-size="pageInfo.pageSize"
+               :choose-flag="false"
                name="table">
-        <DkTableColumn :type="$libaray.checkButtonHasRight('customer-detail')?'link':''" field="customerCode"
+        <DkTableColumn :type="$libaray.checkButtonHasRight('customer-detail')?'link':''" field="cusCode"
                        @on-link="openCustomerMessage"></DkTableColumn>
-        <DkTableColumn :type="$libaray.checkButtonHasRight('customer-detail')?'link':''" field="customerName"
+        <DkTableColumn :type="$libaray.checkButtonHasRight('customer-detail')?'link':''" field="cusName"
                        @on-link="openCustomerMessage"></DkTableColumn>
-        <DkTableColumn field="customerPhone"></DkTableColumn>
+        <DkTableColumn field="cusPhone"></DkTableColumn>
         <DkTableColumn field="addressFull"></DkTableColumn>
         <DkTableColumn field="contactName"></DkTableColumn>
         <DkTableColumn field="contactPhones"></DkTableColumn>
@@ -85,103 +87,79 @@
         <Radio label="2">{{ $t('receptionNew') }}</Radio>
         <Radio label="1">{{ $t('receptionOld') }}</Radio>
       </RadioGroup>
-      <DkCollapse ref="collapse">
+      <DkCollapse ref="collapse" v-if="receptionType=='1'">
         <DkPanel prop="customerInfo">
-          <DkForm slot="content" ref="formReception" style="width:100%;" :label-max-words="6">
+          <DkForm slot="content" ref="formReception" v-model="customerInfo4" style="width:100%;">
             <!--客户名称-->
-            <DkFormItem prop="customerName" :errorMessage="getErrMessage('customerName')" required>
-              <InputPop v-model="customerInfo4.customerName"/>
+            <DkFormItem prop="cusName" :required="true">
+              <InputPop v-model="customerInfo4.cusName"/>
             </DkFormItem>
             <!--客户电话-->
-            <DkFormItem prop="customerPhone" :errorMessage="getErrMessage('customerPhone')" required>
-              <InputPop :telephone="true" v-model="customerInfo4.customerPhone" @on-change="changeTel"/>
+            <DkFormItem prop="cusPhone" :required="true">
+              <InputPop :telephone="true" v-model="customerInfo4.cusPhone" @on-change="changeTel"/>
+            </DkFormItem>
+            <!--客户区域-->
+            <DkFormItem prop="addressName" :required="true">
+              <RegionsChoose v-model="addressArea" :options="cityData" :default-value="customerInfo4.addressName"
+                             ref="customerDistrict"
+                             @on-choose="chooseAddress"></RegionsChoose>
             </DkFormItem>
-            <!--行政区划-->
-            <!--              <DkFormItem prop="customerDistrict" :errorMessage="getErrMessage('customerDistrict')">-->
-            <!--                &lt;!&ndash; 高德 &ndash;&gt;-->
-            <!--                <RegionsChooseAmap v-model="regionData" :options="cityData" ref="RegionsChoose"-->
-            <!--                                   :default-value="customerInfo4.addressName"-->
-            <!--                                   @on-choose="chooseAddress"></RegionsChooseAmap>-->
-            <!--              </DkFormItem>-->
             <!--门牌号-->
-            <DkFormItem :label="$t('addressNo')" prop="addressNo" :errorMessage="getErrMessage('addressNo')">
+            <DkFormItem :label="$t('addressNo')" prop="addressNo">
               <InputPop v-model="customerInfo4.addressNo" @input="setAddressFull"/>
             </DkFormItem>
             <!--详细地址-->
-            <DkFormItem :label="$t('addressFull2')" prop="addressFull" :errorMessage="getErrMessage('addressFull')">
+            <DkFormItem :label="$t('addressFull')" prop="addressFull">
               <InputPop v-model="customerInfo4.addressFull" readonly/>
             </DkFormItem>
           </DkForm>
         </DkPanel>
-        <DkPanel prop="receptionNew">
-          <DkForm slot="content" ref="formReceptionNew" style="width:100%;" :label-max-words="6">
-            <!--                客户意向-->
-            <DkFormItem prop="intention" :errorMessage="getErrMessage('intention')" required>
-              <SelectPop v-model="customerInfo4.intention" :options="intentionList.filter((it)=>it.dataName!=='已流失')"
+        <DkPanel prop="receptionOld" v-if="receptionType=='1'">
+          <DkForm slot="content" ref="formReceptionNew" style="width:100%;">
+            <!-- 客户意向-->
+            <DkFormItem prop="intention" :required="true">
+              <SelectPop v-model="customerInfo4.intention" :options="intentionList"
                          :multiple="false" :clearable="false"
-                         label-key="dataName" value-key="dataCode" transfer
+                         label-key="kindName" value-key="kindCode" transfer
                          @on-change="(val)=>cleanCompetitiveBrands(val, 'customerInfo4')"/>
             </DkFormItem>
-            <!--                竞品品牌-->
-            <DkFormItem prop="competitiveBrands" :errorMessage="getErrMessage('competitiveBrands')" required>
-              <InputPop v-model="customerInfo4.competitiveBrands" maxlength="100"/>
-            </DkFormItem>
-            <!--                意向品类-->
-            <DkFormItem prop="intentionInfo" :errorMessage="getErrMessage('intentionInfo')">
-              <DkRow>
-                <Col span="8" v-for="(item, index) of goodsSpecsList" :key="index">
-                  <div v-if="!item.otherFlag">
-                    <Col span="12">
-                      <Checkbox v-model="customerInfo4.intentionInfo[index].value"
-                                @on-change="selectIntentionInfo(customerInfo4.intentionInfo[index])"
-                      >{{ item.specsName }}
-                      </Checkbox>
-                    </Col>
-                    <Col span="12">
-                      <InputNumberPop v-model="customerInfo4.intentionInfo[index].count" style="width: 100px"/>
-                    </Col>
-                  </div>
-                  <div v-else>
-                    <Col span="12">
-                      <Checkbox v-model="customerInfo4.intentionInfo[index].value"
-                                :disabled="!customerInfo4.intentionInfo[index].other">
-                      </Checkbox>
-                      <Poptip transfer width="500" placement="left">
-                        <a>{{ item.specsName }}</a>
-                        <div slot="content">
-                          <RadioGroup v-model="otherIntentionInfo" @on-change="radioChange('4')">
-                            <Col span="6" v-for="(item2, index2) of item.children" :key="index2">
-                              <radio :label="item2.specsId">{{ item2.specsName }}</radio>
-                            </Col>
-                          </RadioGroup>
-                        </div>
-                      </Poptip>
-                    </Col>
-                    <Col span="12">
-                      <InputNumberPop v-model="customerInfo4.intentionInfo[index].count" style="width: 100px"/>
-                    </Col>
-                  </div>
-                </Col>
-              </DkRow>
-            </DkFormItem>
             <!--留店时长-->
-            <DkFormItem prop="stayTimeLen" :errorMessage="getErrMessage('stayTimeLen')">
+            <DkFormItem prop="stayTimeLen">
               <SelectPop v-model="customerInfo4.stayTimeLen" :options="stayTimeLenList" :multiple="false"
                          :clearable="false"
-                         label-key="dataName" value-key="dataCode" transfer/>
+                         label-key="kindName" value-key="kindCode" transfer/>
             </DkFormItem>
             <!--下次邀约时间(提醒时间)-->
-            <DkFormItem prop="nextFollowTime" :errorMessage="getErrMessage('nextFollowTime')">
+            <DkFormItem prop="nextFollowTime">
               <DatePickerPop type="datetime" v-model="customerInfo4.nextFollowTime" transfer
                              format="yyyy-MM-dd HH:mm:ss"/>
             </DkFormItem>
             <!--跟进内容-->
-            <DkFormItem prop="followData" :errorMessage="getErrMessage('followData')" required>
+            <DkFormItem prop="followData" :required="true">
               <InputPop textarea-flag v-model="customerInfo4.followData" maxlength="100"/>
             </DkFormItem>
-            <!--下次跟进计划-->
-            <DkFormItem prop="nextFollowPlan" :errorMessage="getErrMessage('nextFollowPlan')">
-              <InputPop textarea-flag v-model="customerInfo4.nextFollowPlan" maxlength="100"/>
+          </DkForm>
+        </DkPanel>
+      </DkCollapse>
+      <DkCollapse ref="collapse" v-if="receptionType=='2'">
+        <DkPanel prop="receptionNew">
+          <DkForm slot="content" ref="formReceptionNew" style="width:100%;">
+            <!-- 客户意向-->
+            <DkFormItem prop="intention" :required="true">
+              <SelectPop v-model="customerInfo4.intention" :options="intentionList"
+                         :multiple="false" :clearable="false"
+                         label-key="kindName" value-key="kindCode" transfer
+                         @on-change="(val)=>cleanCompetitiveBrands(val, 'customerInfo4')"/>
+            </DkFormItem>
+            <!--留店时长-->
+            <DkFormItem prop="stayTimeLen">
+              <SelectPop v-model="customerInfo4.stayTimeLen" :options="stayTimeLenList" :multiple="false"
+                         :clearable="false"
+                         label-key="kindName" value-key="kindCode" transfer/>
+            </DkFormItem>
+            <!--跟进内容-->
+            <DkFormItem prop="followData" :required="true">
+              <InputPop v-model="customerInfo4.followData" maxlength="100"/>
             </DkFormItem>
           </DkForm>
         </DkPanel>
@@ -190,7 +168,7 @@
         <p slot="title">
           {{ $t('appendix') }}
         </p>
-        <DkPicWall v-model="customerInfo4.annexPaths.annexPaths" folder="t_csm_follow/annex_paths"></DkPicWall>
+        <DkPicWall v-model="customerInfo4.annexPaths" folder="t_csm_follow/annex_paths"></DkPicWall>
       </Card>
 
 
@@ -204,62 +182,63 @@
         <DkPanel prop="customerInfo">
           <DkForm slot="content" ref="formMeasure" style="width:100%;" name="dk-form" v-model="customerInfo5">
             <!--客户名称-->
-            <DkFormItem prop="customerId" :errorMessage="getErrMessage('customerId')">
-              <span>{{ customerInfo.customerName }}</span>
+            <DkFormItem prop="cusName">
+              <InputPop v-model="customerInfo.cusName" :readonly="true"/>
             </DkFormItem>
             <!--客户电话-->
-            <DkFormItem prop="customerPhone" :errorMessage="getErrMessage('customerPhone')">
-              <span>{{ customerInfo.customerPhone }}</span>
+            <DkFormItem prop="cusPhone">
+              <InputPop v-model="customerInfo.cusPhone" :readonly="true"/>
             </DkFormItem>
             <!--详细地址-->
-            <DkFormItem :label="$t('addressFull2')" prop="addressFull" :errorMessage="getErrMessage('addressFull')">
-              <span>{{ customerInfo.addressFull }}</span>
+            <DkFormItem :label="$t('addressFull')" prop="addressFull">
+              <InputPop v-model="customerInfo.addressFull" :readonly="true"/>
             </DkFormItem>
             <!--门牌号-->
-            <DkFormItem :label="$t('addressNo')" prop="addressNo" :errorMessage="getErrMessage('addressNo')">
-              <span>{{ customerInfo.addressNo }}</span>
+            <DkFormItem :label="$t('addressNo')" prop="addressNo">
+              <InputPop v-model="customerInfo.addressNo" :readonly="true"/>
             </DkFormItem>
             <!--导购员-->
-            <DkFormItem :label="$t('shoppingGuide')" required>
-              {{ $store.state.user.userName }}
+            <DkFormItem :label="$t('staffName')">
+              <InputPop v-model="customerInfo.staffName" :readonly="true"/>
             </DkFormItem>
             <!--是否复尺-->
-            <DkFormItem prop="flgAgainMeasure" :errorMessage="getErrMessage('flgAgainMeasure')" required>
+            <DkFormItem prop="flgAgainMeasure" :required="true">
               <RadioGroup v-model="customerInfo5.flgAgainMeasure">
                 <Radio label="true">{{ $t('yes') }}</Radio>
                 <Radio label="false">{{ $t('no') }}</Radio>
               </RadioGroup>
             </DkFormItem>
             <!--量尺备注-->
-            <DkFormItem prop="measureRemarks" :errorMessage="getErrMessage('measureRemarks')">
+            <DkFormItem prop="measureRemarks">
               <InputPop textarea-flag v-model="customerInfo5.measureRemarks" maxlength="100"/>
             </DkFormItem>
             <!--量尺时间-->
-            <DkFormItem prop="measureTime" :errorMessage="getErrMessage('measureTime')" required>
+            <DkFormItem prop="measureTime" :required="true">
               <DatePickerPop type="datetime" v-model="customerInfo5.measureTime" transfer/>
             </DkFormItem>
           </DkForm>
         </DkPanel>
         <DkPanel prop="appendix">
           <!--  下拉区域  -->
-          <DkForm slot="content" ref="formInline" v-model="formData" style="width: 95%" :labelMaxWords="7">
-            <div v-for="(item,index) of customerInfo5.measureAnnex" :key="index">
-              <DkFormItem :label="$t('usedLocation2')" prop="usedLocation"
-                          :errorMessage="getErrMessage('usedLocation')"
-                          required>
+          <DkForm slot="content" ref="formInline" v-model="customerInfo5" style="width: 100%" :labelMaxWords="7"
+                  :col-count="1">
+            <div v-for="(item,index) of customerInfo5.measureAnnex" :key="index" style="width: 100%;margin:25px 35px">
+              <DkFormItem :label="$t('usedLocation2')" prop="usedLocation"  :required="true">
                 <InputPop v-model="item.usedLocation" maxlength="100"/>
               </DkFormItem>
-              <DkPicWall v-model="item.annexPaths" folder="t_csm_follow/measure_annex"></DkPicWall>
-              <Button @click="removeNewMeasureAnnex(index)" icon="md-close" long type="error"></Button>
+              <div style="display: flex;justify-content: space-between;align-items: center">
+                <DkPicWall v-model="item.annexPaths"></DkPicWall>
+                <Button @click="removeNewMeasureAnnex(index)" icon="md-close" long type="error" style="width: 30px"></Button>
+              </div>
             </div>
-            <Button @click="addNewMeasureAnnex" icon="md-add" long style="margin-top: 10px"></Button>
+            <Button @click="addNewMeasureAnnex" icon="md-add" long style="margin-top: 10px;margin-left: 20px"></Button>
           </DkForm>
         </DkPanel>
       </DkCollapse>
     </DkModal>
 
     <!--    跟进任务-->
-    <FollowTask v-model="followTaskModal" :customer-names="customerInfo6.customerNames"
+    <FollowTask v-model="followTaskModal" :customer-names="customerInfo6.cusNames"
                 :customer-ids="customerInfo6.customerIds" @ok="initData(1)"/>
 
     <!--    跟进-->
@@ -294,19 +273,14 @@
 
 <script>
 import {indexMixin} from '@/mixins'
-import FollowTask from './follow-task'
-import Follow from './follow'
 
 export default {
-  name: 'customer-follow',
+  name: 'cus-follow',
   mixins: [indexMixin],
-  components: {
-    FollowTask,
-    Follow
-  },
   data() {
     let self = this
     return {
+      addressArea: [],
       cityData: [],
       //当前展示行附件
       currentRow: {},
@@ -315,35 +289,36 @@ export default {
       customerReadOnly: false,
       // 客户信息 接待
       customerInfo4: {
-        customerId: null,
-        customerName: '',
-        customerPhone: null,
-        addressFull: null,
-        addressNo: null,
+        cusId: null,
+        cusName: '',
+        cusPhone: null,
         followData: null,
-        nextFollowPlan: null,
         followType: null,
         stayTimeLen: 1,
         nextFollowTime: null,
         intention: null,
         competitiveBrands: null,
         intentionInfo: [],
-        annexPaths: {
-          annexPaths: []
-        },
+        addressArea: null,              // 行政区划
+        addressGcj02: null,             // 经纬度
+        addressName: null,              // 小区
+        addressNo: null,                // 门牌号
+        addressFull: null,              // 详细地址
+        annexPaths: null,
       },
       // 客户信息 量尺回执
       customerInfo5: {
+        cusId:null,
         followId: null,
         flgAgainMeasure: 'false',
         measureRemarks: null,
-        measureTime: new Date(),
+        measureTime: new Date().format(),
         measureAnnex: [{usedLocation: null, annexPaths: []}],
       },
       // 客户信息 跟进任务
       customerInfo6: {
         customerIds: [],
-        customerNames: [],
+        cusNames: [],
         followUsers: []
       },
       // 错误信息
@@ -371,56 +346,21 @@ export default {
       receptionModal: false,
       // 接待类型 1 留资 2 陌生
       receptionType: '2',
-      regionData: [],
-      // 接待校验
-      rule4: {
-        customerName: [
-          {required: true, trigger: 'none'},
-        ],
-        customerPhone: [
-          {required: true, trigger: 'none'},
-          {
-            required: true,
-            trigger: 'none',
-            max: 11,
-            min: 11,
-            message: self.$t('W_071', {'param': self.$t('customerPhone')})
-          },
-        ],
-        followData: [
-          {required: true, trigger: 'none'},
-        ],
-        intention: [
-          {required: true, trigger: 'none'},
-        ],
-      },
-      // 回执校验
-      rule5: {
-        flgAgainMeasure: [
-          {required: true, trigger: 'none'},
-        ],
-        measureTime: [
-          {required: true, trigger: 'none', type: 'date'},
-        ],
-      },
-      // 客成状态list
-      saleStatusList: [],
       // 留店时长list
       stayTimeLenList: [],
       // 查询条件
       searchCond: {},
-      //TODO 以后会是动态的所以先做个查询的例子
       searchContent: [
         {
-          valueFormat: {code: 'customerCode'},
+          valueFormat: {code: 'cusCode'},
           valueKind: 'STR'
         },
         {
-          valueFormat: {code: 'customerName'},
+          valueFormat: {code: 'cusName'},
           valueKind: 'STR'
         },
         {
-          valueFormat: {code: 'customerPhone'},
+          valueFormat: {code: 'cusPhone'},
           valueKind: 'STR'
         },
         {
@@ -484,6 +424,8 @@ export default {
       tabsOptions: [
         {label: self.$t('allReceipt'), name: self.$t('allReceipt')},
         {label: self.$t('followTask2'), name: self.$t('followTask2')},
+        {label: self.$t('followToStore'), name: self.$t('followToStore')},
+        {label: self.$t('followReserve'), name: self.$t('followReserve')}
       ],
       pageInfo: {
         total: 0,
@@ -499,8 +441,8 @@ export default {
      * @date   : 2024-02-01 14:23
      */
     openCustomerMessage(row) {
-      if (row['customerId']) {
-        this.$router.push('/sale/customer/detail/' + row['customerId'])
+      if (row['cusId']) {
+        this.$router.push('/sale/customer/detail/' + row['cusId'])
       }
     },
     /**
@@ -518,6 +460,18 @@ export default {
      */
     cancelReception() {
       this.receptionModal = false
+      this.customerInfo4.cusId = null
+      this.customerInfo4.cusName = null
+      this.customerInfo4.cusPhone = null
+      this.customerInfo4.addressFull = null
+      this.customerInfo4.addressNo = null
+      this.customerInfo4.addressName = null
+      this.customerInfo4.addressArea = null
+      this.customerInfo4.addressGcj02 = null
+      this.customerInfo4.followData = null
+      this.customerInfo4.intention = null
+      this.customerInfo4.nextFollowTime = null
+      this.customerInfo4.stayTimeLen = null
     },
     /**
      * @desc   : checkBox修改意向品类
@@ -547,7 +501,32 @@ export default {
      * @date   : 2024-02-01 14:23
      */
     changeTel() {
-
+      this.$nextTick(() => {
+        if (this.customerInfo4.cusPhone == null || this.customerInfo4.cusPhone == '') {
+          return
+        }
+        let params = {
+          cusPhone: this.customerInfo4.cusPhone
+        }
+        this.excute(this.$service.customerService, this.$service.customerService.selectByCondNoPage, params).then(res => {
+          if (res.code === this.$config.SUCCESS_CODE) {
+            if (res.data) {
+              this.customerInfo4.cusId = res.data[0].cusId
+              this.customerInfo4.cusName = res.data[0].cusName
+              this.customerInfo4.cusPhone = res.data[0].cusPhone
+              this.customerInfo4.addressFull = res.data[0].addressFull
+              this.customerInfo4.addressNo = res.data[0].addressNo
+              this.customerInfo4.addressName = res.data[0].addressName
+              this.customerInfo4.addressArea = res.data[0].addressArea
+              this.customerInfo4.addressGcj02 = res.data[0].addressGcj02
+            } else {
+              this.customerInfo4.cusId = null
+            }
+          } else {
+            this.$Message.error(res.message)
+          }
+        })
+      })
     },
     /**
      * @desc   : 选择地址
@@ -555,6 +534,20 @@ export default {
      * @date   : 2024-02-01 14:23
      */
     chooseAddress(value) {
+      this.customerInfo4.customerDistrict = value;
+      // 说明是清空
+      if (!value) {
+        this.customerInfo4.addressName = null;
+        this.customerInfo4.addressArea = {};
+        this.customerInfo4.addressFull = null;
+        this.customerInfo4.addressGcj02 = {};
+      } else {
+        //按照title进行
+        this.customerInfo4.addressName = value.addressName;
+        this.customerInfo4.addressArea = value.addressArea;
+        this.customerInfo4.addressGcj02 = value.addressGcj02;
+        this.customerInfo4.addressFull = value.addressFull + (this.customerInfo4.addressNo ? this.customerInfo4.addressNo : '');
+      }
     },
     /**
      * @desc   : 清除竞争品牌
@@ -569,31 +562,14 @@ export default {
      * @author : 付斌
      * @date   : 2024-02-01 14:24
      */
-    clickTab(val) {
-      if (val == this.$t('followTask2')) {
-        // 仅在跟进任务添加此查询条件
-        this.searchContent.push(
-          {
-            valueFormat: {
-              code: 'finishStatus',
-              data: [
-                {id: 1, name: '完结'},
-                {id: 2, name: '逾期'},
-                {id: 3, name: '未逾期'},
-              ],
-              valueKey: 'id',
-              labelKey: 'name',
-              default: [3]
-            },
-            valueKind: 'M-CHOICE'
-          },
-        )
-        this.$refs.searchCond.setForm()
-      } else {
-        this.searchContent.splice(this.searchContent.length - 1, 1)
-      }
-      this.tabsModel = val
-      this.initData(1)
+    clickTab() {
+      this.$nextTick(() => {
+        //查询条件
+        this.loading = true
+        this.tableData = []
+        this.pageInfo.currentPage = 1
+        this.searchData()
+      })
     },
     /**
      * @desc   : 跟进任务完成
@@ -628,14 +604,6 @@ export default {
 
     },
     /**
-     * @desc   : 查询事件
-     * @author : 付斌
-     * @date   : 2024-02-01 14:24
-     */
-    initData(currentPage) {
-
-    },
-    /**
      * @desc   : 打开跟进弹窗
      * @author : 付斌
      * @date   : 2024-02-01 14:24
@@ -652,13 +620,37 @@ export default {
     followTask() {
       this.followTaskModal = true
     },
+
+    /**
+     * @desc   : 查询参数设定
+     * @author : 常皓宁
+     * @date   : 2024/4/7 11:22
+     */
+    setSearchParams(params) {
+      params.flgValid = true
+      if (this.tabsModel === this.$t('allReceipt')) {
+        params.followStatus = ''
+      } else if (this.tabsModel === this.$t('followTask2')) {
+        params.followStatus = '跟进状态-跟进'
+      } else if (this.tabsModel === this.$t('followToStore')) {
+        params.followStatus = '跟进状态-邀约'
+      } else if (this.tabsModel === this.$t('followReserve')) {
+        params.followStatus = '跟进状态-约尺'
+      }
+      return params
+    },
     /**
      * @desc   : 查询数据
      * @author : 付斌
      * @date   : 2024-02-01 14:24
      */
-    getData() {
-
+    getData(params) {
+      // 查询数据
+      this.excute(this.$service.cusFollowService, this.$service.cusFollowService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.tableData = res.data.list
+        }
+      })
     },
     /**
      * @desc   : 校验
@@ -674,8 +666,36 @@ export default {
      * @date   : 2024-02-01 14:25
      */
     measuringStickReceipt() {
-      this.measureModal = true
+      if (this.$refs['table-select'].batchKeys.length == 1 &&
+        this.$refs['table-select'].batchRows[0].followStatus == '跟进状态-约尺') {
+        if (!this.$refs['table-select'].batchRows[0].cusId) {
+          this.$Message.error(this.$t('W_068'))
+          return
+        }
+        this.measureModal = true
+        this.customerInfo5.followId = this.$refs['table-select'].batchRows[0].followId
+        this.customerInfo5.cusId = this.$refs['table-select'].batchRows[0].cusId
+        this.getCustomerInfo()
+      } else {
+        this.$Message.error(this.$t('W_040'))
+      }
     },
+
+    /**
+     * @desc   : 查询客户信息
+     * @author : 常皓宁
+     * @date   : 2024/4/8 13:00
+     */
+    getCustomerInfo() {
+      this.excuteNoParam(this.$service.customerService, this.$service.customerService.selectById, [this.$refs['table-select'].batchRows[0].cusId], false).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.customerInfo = res.data
+        } else {
+          this.$Message.error(res.message)
+        }
+      })
+    },
+
     /**
      * @desc   : 量尺回执客户选中
      * @author : 付斌
@@ -721,7 +741,10 @@ export default {
      * @date   : 2024-02-01 14:26
      */
     setAddressFull(e) {
-
+      // 客户区域有值才会拼接详细地址
+      if (!this.setCustomerFlag && this.customerInfo4.customerDistrict && this.customerInfo4.customerDistrict.addressFull) {
+        this.customerInfo4.addressFull = this.customerInfo4.customerDistrict.addressFull + (this.customerInfo4.addressNo ? this.customerInfo4.addressNo : '')
+      }
     },
     /**
      * @desc   : 展示附件
@@ -737,6 +760,52 @@ export default {
      * @date   : 2024-02-01 14:26
      */
     submitReception() {
+      this.$refs['formReception'].validate().then(valid => {
+        // 校验
+        if (!valid) {
+          return
+        }
+        let param
+        // 1 留资 建客户是报备,旧客户是接待 2 陌生
+        if (this.receptionType == 1) {
+          param = Object.assign({
+            followStatus: (this.customerInfo4.cusId ? '跟进状态-接待' : '跟进状态-报备')
+          }, this.customerInfo4)
+        } else {
+          param = Object.assign({
+            followStatus: '跟进状态-报备'
+          }, {
+            stayTimeLen: this.customerInfo4.stayTimeLen,
+            followData: this.customerInfo4.followData,
+            annexPaths: this.customerInfo4.annexPaths,
+            followType: this.customerInfo4.followType,
+          })
+        }
+
+        // 下次邀约时间
+        if (param.nextFollowTime) {
+          param.nextFollowTime = param.nextFollowTime.format()
+        }
+
+        //附件
+        if (param.annexPaths && param.annexPaths.annexPaths) {
+          param.annexPaths.annexPaths = param.annexPaths.annexPaths.map(m => m.path)
+        }
+        param.followOrg = this.$store.state.user.orgId
+        this.loading = true
+        // 保存
+        this.excute(this.$service.cusFollowService, this.$service.cusFollowService.insert, param).then(res => {
+          this.loading = false
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.$Message.success(res.message)
+            //关闭接待弹窗
+            this.cancelReception()
+            this.initData(1)
+          } else {
+            this.$Message.error(res.message)
+          }
+        })
+      })
 
     },
     /**
@@ -745,7 +814,35 @@ export default {
      * @date   : 2024-02-01 14:26
      */
     submitMeasure() {
+      this.$refs['formMeasure'].validate().then(valid => {
+        // 校验
+        if (!valid) {
+          return
+        }
+        let param = Object.assign({}, this.customerInfo5)
+
+        //量尺附件
+        if (param.measureAnnex) {
+          for (let it of param.measureAnnex) {
+            if (it.annexPaths) {
+              it.annexPaths = it.annexPaths.map(m => m.path)
+            }
+          }
+        }
+        this.loading = true
+        //保存
+        this.excute(this.$service.cusFollowService,this.$service.cusFollowService.updateMeasure,param).then(res => {
+          this.loading = false
+          if (res.code === 200) {
+            this.$Message.success(res.message)
+            //关闭接待弹窗
+            this.cancelMeasure()
+          } else {
+            this.$Message.error(res.message)
+          }
+        })
 
+      })
     },
     /**
      * @desc   : 上传文件
@@ -755,10 +852,50 @@ export default {
     uploadFile(response, file, fileList) {
 
     },
+    /**
+     * @desc   : 获取客户意向
+     * @author : 常皓宁
+     * @date   : 2024/4/7 13:30
+     */
+    getIntention() {
+      let params = {
+        dataSourceCode: 'customerIntention'
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getInitData, params, false).then(res => {//调用api查询方法
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.intentionList = res.data
+        }
+      })
+    },
+    /**
+     * @desc   : 获取留店时长
+     * @author : 常皓宁
+     * @date   : 2024/4/7 13:31
+     */
+    getStayTimeLen() {
+      let params = {
+        dataSourceCode: 'storeRetentionTime'
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getInitData, params, false).then(res => {//调用api查询方法
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.stayTimeLenList = res.data
+        }
+      })
+    },
+
+    /**
+     * @desc   : 查询事件
+     * @author : 付斌
+     * @date   : 2024-02-01 14:24
+     */
+    initData() {
+      this.getStayTimeLen()
+      this.getIntention()
+    },
   },
   created() {
-    this.primaryKey = 'customerFollowId'  // 设置主键Id
-    this.routeObjName = 'customerFollow'  // 设置路由名称
+    this.primaryKey = 'followId'  // 设置主键Id
+    this.routeObjName = 'cusFollow'  // 设置路由名称
   }
 }
 </script>

+ 10 - 2
src/view/mst/customer/index.vue

@@ -252,6 +252,9 @@ export default {
       tableData: [],
       tabsModel: null,
       tabsOptions: [
+        {label: self.$t('潜在客户'), name: self.$t('潜在客户'), index: 0},
+        {label: self.$t('公海客户'), name: self.$t('公海客户'), index: 1},
+        {label: self.$t('成交客户'), name: self.$t('成交客户'), index: 2},
         {label: self.$t('allCustomers'), name: self.$t('allCustomers'), index: 3},
       ],
       //业务部门list
@@ -368,8 +371,13 @@ export default {
      * @author : 付斌
      * @date   : 2024-02-01 14:22
      */
-    getData() {
-
+    getData(params) {
+      // 查询数据
+      this.excute(this.$service.customerService, this.$service.customerService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.tableData = res.data.list
+        }
+      })
     },
   },
   created() {

+ 0 - 3
src/view/mst/goods/add.vue

@@ -13,6 +13,3 @@ export default {
 }
 </script>
 
-<style scoped>
-
-</style>

+ 1 - 4
src/view/mst/goods/edit.vue

@@ -6,13 +6,10 @@
 import CommonForm from "./form";
 
 export default {
-  name: 'edit',
+  name: 'goods-edit',
   components: {
     CommonForm
   },
 }
 </script>
 
-<style scoped>
-
-</style>

+ 176 - 164
src/view/mst/goods/form.vue

@@ -7,114 +7,120 @@
                   v-if="editKeys && editKeys.length > 1"
                   @pageChange="editPageChange"></DkPageButton>
     <DkCollapse @on-change="changeCollapse" ref="collapse">
-      <DkPanel prop="基本信息">
+      <DkPanel prop="baseAttribute">
         <!--  下拉区域  -->
         <DkForm slot="content" ref="formInline" v-model="formData"  :labelMaxWords=5>
           <!--唯一编码-->
-          <DkFormItem :required="true" prop="唯一编码">
-            <InputPop ref="唯一编码" v-model="formData.唯一编码" :readonly="type == $config.formMode.edit"/>
+          <DkFormItem prop="skuCode">
+            <InputPop ref="skuCode" v-model="formData.skuCode" :readonly="true"/>
           </DkFormItem>
           <!--商品型号-->
-          <DkFormItem :required="true" prop="商品型号">
-            <InputPop ref="商品型号" v-model="formData.商品型号" :readonly="type == $config.formMode.edit"/>
+          <DkFormItem prop="skuModel">
+            <InputPop ref="skuModel" v-model="formData.skuModel" />
           </DkFormItem>
           <!--商品名称-->
-          <DkFormItem :required="true" prop="商品名称">
-            <InputPop ref="商品名称" v-model="formData.商品名称"/>
-          </DkFormItem>
-          <DkFormItem prop="remarks">
-            <InputPop v-model="formData.remarks" maxlength="255"/>
+          <DkFormItem prop="skuName">
+            <InputPop ref="skuName" v-model="formData.skuName"/>
           </DkFormItem>
         </DkForm>
       </DkPanel>
-      <DkPanel prop="商品属性">
+      <DkPanel prop="goodsAttribute">
         <!--  下拉区域  -->
         <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=5>
-          <!--商品品牌-->
-          <DkFormItem prop="商品品牌" :required="true" :data-type="this.$config.dataType.array" :label="'商品品牌'">
-            <SelectPop v-model="formData.商品品牌" :multiple="false" :options="List1" ref="roleIds"
-                       labelKey="roleName"
-                       valueKey=roleId>
-            </SelectPop>
+          <!--  品牌  -->
+          <DkFormItem prop="brandIds">
+            <SelectMagnifier v-model="formData.brandId" :display-text="formData.brandName"
+                             :type="this.$config.MagnifierType.brand"
+                             :multiple="false"></SelectMagnifier>
           </DkFormItem>
           <!--商品种类-->
-          <DkFormItem prop="商品种类" :required="true" :data-type="this.$config.dataType.array" :label="'商品种类'">
-            <SelectPop v-model="formData.商品种类" :multiple="false" :options="List2" ref="roleIds"
-                       labelKey="roleName"
-                       valueKey=roleId>
-            </SelectPop>
-          </DkFormItem>
-          <!--计量单位-->
-          <DkFormItem prop="计量单位" :required="true" :data-type="this.$config.dataType.array" :label="'计量单位'">
-            <SelectPop v-model="formData.计量单位" :multiple="false" :options="List4" ref="roleIds"
-                       labelKey="roleName"
-                       valueKey=roleId>
+          <DkFormItem prop="category">
+            <SelectPop v-model="formData.category" :multiple="false"
+                       :options="categoryList" ref="category"
+                       labelKey="catName"
+                       valueKey=catId>
             </SelectPop>
           </DkFormItem>
           <!--商品系列-->
-          <DkFormItem prop="商品系列" :data-type="this.$config.dataType.array" :label="'商品系列'">
-            <SelectPop v-model="formData.商品系列" :multiple="false" :options="List3" ref="roleIds"
-                       labelKey="roleName"
-                       valueKey=roleId>
+          <DkFormItem prop="series" >
+            <SelectPop v-model="formData.seriesId" :multiple="false" :options="seriesList" ref="category"
+                       labelKey="seriesName"
+                       valueKey=seriesId>
             </SelectPop>
           </DkFormItem>
-          <!--商品规格-->
-          <DkFormItem prop="商品规格" :data-type="this.$config.dataType.array" :label="'商品规格'">
-            <SelectPop v-model="formData.商品规格" :multiple="false" :options="List5" ref="roleIds"
-                       labelKey="roleName"
-                       valueKey=roleId>
+          <!--计量单位-->
+          <DkFormItem prop="unit">
+            <SelectPop v-model="formData.unitId" :multiple="false" :options="unitList" ref="unit"
+                       labelKey="unitName"
+                       valueKey=unitId>
             </SelectPop>
           </DkFormItem>
           <!--辅助计量单位-->
-          <DkFormItem prop="辅助计量单位">
-            <InputPop ref="辅助计量单位" v-model="formData.辅助计量单位"/>
-          </DkFormItem>
-        </DkForm>
-      </DkPanel>
-      <DkPanel prop="仓库信息">
-        <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=5>
-          <!--初期仓库-->
-          <DkFormItem :required="true" prop="orgId" :data-type="$config.dataType.number" :label="'初期仓库'">
-            <SelectMagnifier v-model="formData.初期仓库" :display-text="formData.levelName"
-                             :type="this.$config.MagnifierType.初期仓库"
-                             :multiple="false"
-                             title="初期仓库"
-                             @ok="chooseHouse"></SelectMagnifier>
-          </DkFormItem>
-          <!--库存色号-->
-          <DkFormItem prop="库存色号">
-            <InputPop ref="库存色号" v-model="formData.库存色号"/>
+          <DkFormItem prop="subUnit">
+            <SelectPop v-model="formData.subUnitId" :multiple="false" :options="unitList" ref="subUnit"
+                       labelKey="subUnitName"
+                       valueKey=subUnitId>
+            </SelectPop>
           </DkFormItem>
-          <!--期初数量-->
-          <DkFormItem prop="期初数量">
-            <InputPop ref="期初数量" v-model="formData.期初数量"/>
+          <!--商品规格-->
+          <DkFormItem prop="skuSpec">
+            <InputPop ref="skuSpec" v-model="formData.skuSpec"/>
           </DkFormItem>
-          <!--期初成本价-->
-          <DkFormItem prop="期初成本价">
-            <InputPop ref="期初成本价" v-model="formData.期初成本价"/>
+          <!--单位换算-->
+          <DkFormItem prop="conversionFactor">
+            <InputPop ref="conversionFactor" v-model="formData.conversionFactor"/>
           </DkFormItem>
         </DkForm>
       </DkPanel>
-      <DkPanel prop="价格明细">
+      <DkPanel prop="priceItem">
         <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=5>
           <!--采购价-->
-          <DkFormItem prop="采购价">
-            <InputPop ref="采购价" v-model="formData.采购价"/>
+          <DkFormItem prop="pricePurchase">
+            <InputPop ref="pricePurchase" v-model="formData.pricePurchase"/>
           </DkFormItem>
           <!--零售价-->
-          <DkFormItem prop="零售价">
-            <InputPop ref="零售价" v-model="formData.零售价"/>
+          <DkFormItem prop="priceStandard">
+            <InputPop ref="priceStandard" v-model="formData.priceStandard"/>
           </DkFormItem>
           <!--批发价-->
-          <DkFormItem prop="批发价">
-            <InputPop ref="批发价" v-model="formData.批发价"/>
+          <DkFormItem prop="priceWholesale">
+            <InputPop ref="priceWholesale" v-model="formData.priceWholesale"/>
           </DkFormItem>
           <!--销售售价-->
-          <DkFormItem prop="销售售价">
-            <InputPop ref="销售售价" v-model="formData.销售售价"/>
+          <DkFormItem prop="priceLimited">
+            <InputPop ref="priceLimited" v-model="formData.priceLimited"/>
           </DkFormItem>
         </DkForm>
       </DkPanel>
+      <DkPanel prop="库存信息">
+        <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=6>
+        <!--  仓库名称  -->
+        <DkFormItem prop="whName">
+          <SelectMagnifier v-model="formData.whId" :display-text="formData.whName"
+                           :type="this.$config.MagnifierType.warehouse"
+                           :multiple="false"></SelectMagnifier>
+        </DkFormItem>
+        <!--非标号-->
+        <DkFormItem prop="nonStdCode">
+          <InputPop ref="nonStdCode" v-model="formData.nonStdCode"/>
+        </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <DkPanel prop="备注信息">
+        <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=5>
+          <DkFormItem prop="remarks" :span="12">
+            <InputPop ref="remarks" v-model="formData.remarks"
+                      maxlength=500 textareaFlag/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <DkPanel prop="商品图片">
+        <div id="search-cond-div-files-info" ref="search-cond-div-files-info" slot="content">
+          <DkPicWall v-model="formData.skuImages"
+                     :table="$config.tables.sku" :accept="$config.uploadFileConfig.acceptPicType"></DkPicWall>
+        </div>
+      </DkPanel>
+
     </DkCollapse>
 
     <!--      下部分按钮区域-->
@@ -129,107 +135,113 @@ import {formMixin} from "@/mixins/form";
 export default {
   components: {},
   mixins: [formMixin],
-
   data() {
     return {
-      List1: [
-        {
-          roleId: 1,
-          roleName: '蒙娜丽莎瓷砖'
-        },
-        {
-          roleId: 2,
-          roleName: '箭牌卫浴'
-        },
-        {
-          roleId: 3,
-          roleName: '恒洁位于'
-        },
-      ],
-      List2: [
-        {
-          roleId: 1,
-          roleName: '陶瓷类'
-        },
-        {
-          roleId: 2,
-          roleName: '浴室柜类'
-        },
-      ],
-      List3: [
-        {
-          roleId: 1,
-          roleName: '原木系列'
-        },
-        {
-          roleId: 2,
-          roleName: '金属系列'
-        },
-        {
-          roleId: 3,
-          roleName: '古典系列'
-        },
-        {
-          roleId: 4,
-          roleName: '沐浴系列'
-        },
-      ],
-      List4: [
-        {
-          roleId: 1,
-          roleName: '米'
-        },
-        {
-          roleId: 2,
-          roleName: '箱'
-        },
-        {
-          roleId: 3,
-          roleName: '平方米'
-        },
-        {
-          roleId: 4,
-          roleName: '个'
-        },
-      ],
-      List5:[
-        {
-          roleId: 1,
-          roleName: '800*800'
-        },
-        {
-          roleId: 2,
-          roleName: '300*800'
-        },
-        {
-          roleId: 3,
-          roleName: '600*600'
-        },
-      ],
-      formData: {
-        唯一编码: null,
-        商品型号: null,
-        商品名称: null,
-        商品品牌: null,
-        商品种类: null,
-        商品系列: null,
-        计量单位: null,
-        商品规格: null,
-        辅助计量单位: null,
-        初期仓库: null,
-        库存色号: null,
-        期初数量: null,
-        期初成本价: null,
-        采购价: null,
-        零售价: null,
-        批发价: null,
-        销售售价: null,
-        remarks: null,
+      categoryList:[],
+      seriesList:[],
+      unitList:[],
+      subUnitList:[],
+     formData: {
+       skuCode: null,
+       skuModel: null,
+       skuName: null,
+       brandId: null,//商品品牌
+       categoryId: null,//商品种类
+       seriesId: null,//商品系列
+       unitId: null,//计量单位
+       skuSpec: null,//商品规格
+       subUnitId: null,//辅助计量单位
+       conversionFactor: null, //单位换算
+       pricePurchase : null, //采购价
+       priceStandard : null, //零售价
+       priceWholesale : null,//批发价
+       priceLimited : null, //销售售价
+       nonStdCode:null,
+       whId:null,
+       whName:null,
+       skuImages:null,
+       remarks: null,
       },
     }
   },
   methods: {
 
+    /**
+     * @desc   : 加载数据
+     * @author : 宋扬
+     * @date   : 2024/4/8 15:12
+     */
+    initData() {
+      // 获取商品种类
+      this.getGoodsCategory();
+      // 获取商品系列
+      this.getGoodsSeries();
+      // 获取计量单位
+      this.getGoodsUnit();
+    },
+
+    /**
+     * @desc   : 获取商品种类
+     * @author : 宋扬
+     * @date   : 2024/4/8 15:13
+     */
+    getGoodsCategory() {
+      this.excute(this.$service.goodsCategoryService, this.$service.goodsCategoryService.selectByCond, {}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.categoryList = res.data.list;
+        }
+      })
+    },
+
+    /**
+     * @desc   : 获取商品系列
+     * @author : 宋扬
+     * @date   : 2024/4/8 15:18
+     */
+    getGoodsSeries() {
+      this.excute(this.$service.goodsSeriesService, this.$service.goodsSeriesService.selectByCond, {}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.seriesList = res.data.list;
+        }
+      })
+    },
+
+    /**
+     * @desc   : 获取计量单位
+     * @author : 宋扬
+     * @date   : 2024/4/8 15:20
+     */
+    getGoodsUnit() {
+      this.excute(this.$service.unitService, this.$service.unitService.selectByCond, {}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.unitList = res.data.list;
+          this.subUnitList= res.data.list;
+        }
+      })
+    },
+
+    /**
+     * @desc   : 赋值信息
+     * @author : 宋扬
+     * @date   : 2024/4/8 16:41
+     */
+    setParams(){
+      this.params = {...this.formData}
+    },
+
+    /**
+     * @desc   : 保存数据
+     * @author : 宋扬
+     * @date   : 2024/4/8 16:30
+     */
+    saveData() {
+      if (this.type === this.$config.formMode.add) {
+        return this.excute(this.$service.goodsService, this.$service.goodsService.insert, this.params);
+      } else if (this.type === this.$config.formMode.edit) {
+        return this.excute(this.$service.goodsService, this.$service.goodsService.edit, this.params);
+      }
+    },
+
   },
 }
 </script>

+ 109 - 88
src/view/mst/goods/index.vue

@@ -11,9 +11,9 @@
         <!--    编辑    -->
         <BaseIndexButton ref="edit" name="edit"></BaseIndexButton>
         <!--    启用    -->
-        <BaseIndexButton ref="enable" name="enable"></BaseIndexButton>
+        <BaseIndexButton  ref="enable" name="enable"></BaseIndexButton>
         <!--    停用    -->
-        <BaseIndexButton ref="disable" name="disable"></BaseIndexButton>
+        <BaseIndexButton  ref="disable" name="disable"></BaseIndexButton>
       </template>
       <template #right>
         <!--   新建     -->
@@ -28,22 +28,25 @@
                   :searchContent="searchContent"
       ></SearchCond>
     </div>
-
     <!--  表格部分  -->
     <div :style="'height: ' + (tableHeight + 30) + 'px'" class="split-div-class">
-      <DkSplit v-model="split">
-        <!-- 左边部分   -->
-        <div slot="left" class="split-pane">
-          <DkTree  :data="hgSpuCategoryList" :topCurrentFlag="true" style="margin-top: 5px" expandMode="one"
-                   id="categoryId" parent-id="parentId" tree-node-name="categoryName" :height="tableHeight"></DkTree>
-        </div>
+    <DkSplit v-model="split">
+      <!-- 左边部分   -->
+      <DkTable slot="left" ref="leftTable" :data="leftData" :height="tableHeight + 30" :page-flag="false"
+               :page-total-flag="false"  :choose-flag="false" :show-setting-flag="false"
+               @current-change="currentChangeEvent($event)" primaryKey="seriesId">
+        <DkTableColumn field="seriesName" />
+      </DkTable>
 
         <!-- 右边部分   -->
         <DkTable slot="right" :id="'table-' + $options.name" ref="table-select" :data="tableData" :pageFlag="true"
                  :page-total="pageInfo.total" :current-page="pageInfo.currentPage" :choose-flag="false"
-                 :height="this.tableHeight" primaryKey="typeId" @pageChange="pageSizeChange">
-          <DkTableColumn field="编码"></DkTableColumn>
-          <DkTableColumn field="名称"></DkTableColumn>
+                 :height="this.tableHeight" primaryKey="skuId" @pageChange="pageSizeChange">
+          <DkTableColumn field="skuCode"></DkTableColumn>
+          <DkTableColumn field="skuName"></DkTableColumn>
+          <DkTableColumn field="skuModel"></DkTableColumn>
+          <DkTableColumn field="skuSpec"></DkTableColumn>
+          <DkTableColumn field="remarks"></DkTableColumn>
           <DkTableColumn field="flgValid" type="switch" ></DkTableColumn>
         </DkTable>
       </DkSplit>
@@ -60,104 +63,122 @@ export default {
   data(){
     let self = this
     return{
+      leftData: [],
+      tableData: [],
+      seriesId:null,
       split: 0.15,
       minSplit: 0.15,
-      hgSpuCategoryList:[
-      ],
       searchContent:
         [
           {
-            itemCode: '商品名称',
-          },
-          {
-            itemCode: '商品编码',
+            itemCode: 'skuName',
           },
           {
-            itemCode: '唯一编码',
+            itemCode: 'skuModel',
           },
           {
-            itemCode: '商品品牌',
+            itemCode: 'brandIds',
+            valueFormat: {
+              code: 'goodsBrandList',
+              data: [],
+              valueKey: 'brandId',
+              labelKey: 'brandName'
+            },
+            valueKind: 'M-CHOICE'
           },
+          self.$config.flgValidSearch
         ],
     }
   },
   methods:{
+
+    /**
+     * @desc   : 加载数据
+     * @author : 宋扬
+     * @date   : 2024/4/7 14:21
+     */
+    initData(){
+      // 查询商品系列数据
+      this.getSeriesData();
+      // 查询品牌信息
+      this.getGoodsBrand();
+    },
+
+    /**
+     * @desc   : desc
+     * @author : 宋扬
+     * @date   : 2024/4/8 13:23
+     */
+    getGoodsBrand(){
+      this.excute(this.$service.goodsBrandService, this.$service.goodsBrandService.selectByCond, {}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          let list = this.searchContent.filter(it => it.valueFormat.code == 'goodsBrandList')
+          if (list.length > 0) {
+            list[0].valueFormat.data = res.data.list
+          }
+        }
+      })
+    },
+
     /**
-     * @desc   : 新建按钮点击事件
-     * @author : 常皓宁
-     * @date   : 2024/1/31 9:19
+     * @desc   : 查询数据
+     * @author : 宋扬
+     * @date   : 2024/4/7 14:30
      */
-    add() {
-      this.$router.push('/core/goods/add')
+    getData(params){
+      if (this.seriesId) {
+        let data = {
+          seriesId: this.seriesId,
+          skuModel: this.searchCond._value['skuModel'],
+          skuName: this.searchCond._value['skuName'],
+        }
+        this.currentChangeEvent({row: data})
+      }
     },
 
+
+    /**
+     * @desc   : 获取系列数据
+     * @author : 宋扬
+     * @date   : 2024/4/7 15:10
+     */
+    getSeriesData(){
+      this.excute(this.$service.goodsSeriesService, this.$service.goodsSeriesService.getGoodsSeriesList, {}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.leftData = res.data;
+        }
+      })
+    },
+
+    /**
+     * @desc   : 右侧列表行变化事件
+     * @author : 宋扬
+     * @date   : 2024/4/7 15:03
+     */
+    currentChangeEvent({row}){
+      this.loading = true;
+      if (row != null){
+        let params={
+          seriesId : row.seriesId,
+          skuModel : row.skuModel,
+          skuName : row.skuName,
+        }
+        this.excute(this.$service.goodsService,this.$service.goodsService.selectByCond,params).then(res => {
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.tableData = res.data.list
+          }
+        })
+      }
+      this.loading = false;
+    }
+
   },
   created() {
-    this.primaryKey = 'goodsId'  // 设置主键Id
+    this.primaryKey = 'skuId'  // 设置主键Id
     this.routeObjName = 'goods'  // 设置路由名称
+    this.comHandleEnableFlag = true; // 开启启用停用功能
   },
-  mounted() {
-    this.hgSpuCategoryList = [
-      {
-        categoryId:0,
-        categoryName:'全部分类',
-        parentId:null
-      },
-      {
-        categoryId:1,
-        categoryName:'智能一体机',
-        parentId:0
-      },
-      {
-        categoryId:2,
-        categoryName:'陶瓷坐便',
-        parentId:0
-      },
-      {
-        categoryId:3,
-        categoryName:'浴室柜',
-        parentId:0
-      },
-      {
-        categoryId:4,
-        categoryName:'定制浴室柜',
-        parentId:0
-      },
-      {
-        categoryId:5,
-        categoryName:'花洒',
-        parentId:0
-      },
-      {
-        categoryId:6,
-        categoryName:'淋浴房',
-        parentId:0
-      },
-      {
-        categoryId:7,
-        categoryName:'龙头类',
-        parentId:0
-      },
-      {
-        categoryId:8,
-        categoryName:'五金类',
-        parentId:0
-      },
-      {
-        categoryId:9,
-        categoryName:'浴缸',
-        parentId:0
-      },
-      {
-        categoryId:10,
-        categoryName:'配件',
-        parentId:0
-      },
-    ]
-  }
+
 }
 </script>
 
-<style scoped>
-
-</style>

+ 0 - 10
src/view/mst/staff/index.vue

@@ -61,7 +61,6 @@
       ref="modal_editAdd"
       @on-visible-change="handleVisibleModal"
       @modalOk="save"
-      @modalCancel="clear"
       :saveFlag="true"
       :title="modalTitle"
     >
@@ -434,15 +433,6 @@ export default {
     },
 
     /**
-    * @desc   : 关闭弹窗
-    * @author : 常皓宁
-    * @date   : 2024/3/13 9:05
-    */
-    clear() {
-      this.formData = []
-    },
-
-    /**
      * @desc   : 提交事件
      * @author : 常皓宁
      * @date   : 2024/3/5 14:19

+ 13 - 0
src/view/pur/pur-enter/form.vue

@@ -651,6 +651,7 @@ export default {
         whName: null,
         remarks: null,
         annexPaths: null,
+        flgAutoHandle: false,//自动入库标识
       },
         this.purchaseItemList = []
     },
@@ -711,6 +712,18 @@ export default {
       // 公司
       this.params.cpId = this.$store.state.user.cpId
 
+      //附件
+      if (this.formData.annexPaths.length > 0) {
+        this.params.annexPaths = this.formData.annexPaths.map(m => {
+          return {
+            name: m.name,
+            url: m.path,
+            type: m.type,
+            createTime: m.createTime
+          }
+        })
+      }
+
       // 新建
       if (this.type === this.$config.formMode.add) {
         let tableFilter = this.$refs['detailTable'].getTableDataFilter();

+ 12 - 8
src/view/pur/pur-enter/index.vue

@@ -304,7 +304,7 @@ export default {
         this.loading = true
         this.tableData = []
         this.pageInfo.currentPage = 1
-        this.getData()
+        this.searchData()
       })
 
     },
@@ -322,15 +322,10 @@ export default {
      * @author : 常皓宁
      * @date   : 2023/8/26 16:25
      */
-    setSearchParams() {
-      let params = this.searchList
-      params.currentPage = this.pageInfo.currentPage
-      params.pageSize = this.pageInfo.pageSize
+    setSearchParams(params) {
+      console.log('123123')
       params.flgValid = true
       params.intoType = this.$config.intoTypeBySql.purchase
-      if (this.$store.state.user.cpId) {
-        params.cpId = this.$store.state.user.cpId  //所属公司
-      }
       if (this.tableModel === 'waitEntry') {
         params.intoStatusList = [this.$config.intoStatus.ruKuZhong]
       } else if (this.tableModel === 'ingEntry') {
@@ -364,6 +359,15 @@ export default {
       if (row != null) {
         this.intoId = row.intoId
         this.getDetail(1)
+        if (row.annexPaths) {
+          row.annexPaths = row.annexPaths.map(m => {
+            return {
+              path: m.url,
+              name: m.name,
+              type: 'img'
+            }
+          })
+        }
         //订单附件
         this.tableDataDetail_files = row.annexPaths
       }

+ 2 - 9
src/view/pur/pur-return/index.vue

@@ -306,7 +306,7 @@ export default {
         this.tableData = []
         this.pageInfo.currentPage = 1
         // 查询数据
-        this.getData()
+        this.searchData()
       })
 
     },
@@ -378,20 +378,13 @@ export default {
      * @author : 常皓宁
      * @date   : 2023/8/26 16:25
      */
-    setSearchParams() {
-      let params = this.searchList
-      params.currentPage = this.pageInfo.currentPage
-      params.pageSize = this.pageInfo.pageSize
+    setSearchParams(params) {
       params.flgValid = true
       params.intoType = this.$config.intoTypeBySql.purchaseReturn
       if (this.isShowCancel) {
         params.isShowCancel = 1
       } else {
         params.isShowCancel = null
-
-      }
-      if (this.$store.state.user.cpId) {
-        params.cpId = this.$store.state.user.cpId  //所属公司
       }
       if (this.tableModel === 'waitOut') {
         params.intoStatusList = [this.$config.intoStatus.ruKuZhong]

+ 0 - 3
src/view/sale/cus-receipt/form.vue

@@ -89,9 +89,6 @@ export default {
       loading: false,
       negativeFlag: false,
       showEditTable: true,
-      //控制客户是否可以输入
-      readonlyFlag: true,
-      allCanNoEdit: false, //是否所有的都不允许编辑
       // 画面表单数据
       formData: {
         accDate: new Date(),

+ 3 - 3
src/view/sale/cus-receipt/index.vue

@@ -75,8 +75,8 @@ export default {
   data() {
     let self = this
     return {
-      tableData: [],
-      tableDataDetail_rpItem: [],
+      tableData: null,
+      tableDataDetail_rpItem: null,
       searchContent: [
         {
           itemCode: '收款单号-文本',
@@ -227,7 +227,7 @@ export default {
      * @date   : 2024-02-20 15:53
      */
     getData(params) {
-      this.tableData = [];
+      this.tableData = null;
       this.tableDataDetail_rpItem = null;
       return this.excute(this.$service.cusReceiptService, this.$service.cusReceiptService.selectByCond, params)
     },