Explorar el Código

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

changhaoning hace 2 años
padre
commit
081e7a6de5

+ 2 - 1
public/index.html

@@ -10,7 +10,8 @@
 <!--    <script charset="utf-8" src="https://map.qq.com/api/gljs?v=2.exp&key=M2YBZ-ZPBW6-TVJSU-EKRO5-CNEK2-GVBDF"></script>-->
 <!--<script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=6UIRYgyb7jno5rOuGvz9o75vPYo4Crbl"></script>-->
 <!--    企业微信扫码登录-->
-    <script src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js"></script>
+<!--    <script src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js"></script>-->
+
     <!--  小程序SDK  -->
     <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
     <title></title>

+ 5 - 0
src/api/base.js

@@ -5,6 +5,11 @@ import router from '@/router'
 import {localRead} from "@/libs/base/util";
 
 export const request = (url, data, method, token) => {
+  //拼接业务服务编码
+  if (store.state.user.svcCode) {
+    url = url.replace('mdm-server', 'mdm-server' + '-' + store.state.user.svcCode.replace('_', '-'))
+  }
+
   // if (data && !data.dealerId && store.state.user.loginType == 1 && url !== 'file/get_qr_code_url'){
   //   data.dealerId = store.state.user.dealerId
   // }

+ 23 - 0
src/api/pages/pur/pur-reject.js

@@ -0,0 +1,23 @@
+/**
+ * @desc   : 采购退货服务
+ * @author : 付斌
+ * @date   : 2024-01-31 14:37
+ */
+export default {
+  purRejectService: {
+    prefix: '/pur-server/pur/purReject/',
+  }
+}
+
+/**
+ * @desc   : 采购退货路由
+ * @author : 付斌
+ * @date   : 2024-02-01 16:03
+ */
+export const routeUrl = {
+  purReject: {
+    add: {key: 'add', method: 'add'},
+    entryHandle: {key: 'entryHandle', method: 'entryHandle'},
+    completeRevocation: {key: 'completeRevocation', method: 'completeRevocation'},
+  }
+}

+ 21 - 0
src/api/pages/sale/order.js

@@ -0,0 +1,21 @@
+/**
+ * @desc   : 销售订单服务
+ * @author : 付斌
+ * @date   : 2024-01-31 14:37
+ */
+export default {
+  orderService: {
+    prefix: '/sale-server/sale/order/',
+  }
+}
+
+/**
+ * @desc   : 销售订单路由
+ * @author : 付斌
+ * @date   : 2024-02-01 16:03
+ */
+export const routeUrl = {
+  order: {
+    add: {key: 'add', method: 'add'},
+  }
+}

+ 35 - 7
src/api/system/user/login.js

@@ -8,17 +8,17 @@ import store from '@/store'
 import qs from 'qs';
 import {localRead} from "@/libs/base/util";
 
-export const login = ({ftyCode, userCode, userPwd,appCode}) => {
+export const login = ({userCode, userPwd}) => {
 
   const data = {
-    'grant_type': 'password',
-    'client_id': 'f3ed0d90-3fc8-4eba-b83c-a0cfe54c174d',
-    'client_secret': '78e238b4-c199-49ad-b619-69b6a78959d8',
-    'ftycode': ftyCode,
-    'username': userCode,
+    // 'grant_type': 'password',
+    // 'client_id': 'f3ed0d90-3fc8-4eba-b83c-a0cfe54c174d',
+    // 'client_secret': '78e238b4-c199-49ad-b619-69b6a78959d8',
+    // 'ftycode': ftyCode,
+    'phone': userCode,
     'password': md5(userPwd),
     'lang':localRead('local_lan'),
-    'appcode':appCode,
+    // 'appcode':appCode,
   }
 
   return new Promise(resolve => {
@@ -970,3 +970,31 @@ export const restoreTrash = msg_id => {
     }
   })
 }
+
+/**
+ * @desc   : 获取二维码
+ * @author : 洪旭东
+ * @date   : 2024-02-20 09:38
+ */
+export const getQrCode = uuid => {
+  return axios.request({
+    url: `oauth-server/oauth/qrcode?uuid=${uuid}`,
+    method: 'post',
+    data: {
+    }
+  })
+}
+
+/**
+ * @desc   : 验证当前扫码登录是否成功
+ * @author : 洪旭东
+ * @date   : 2024-02-20 10:42
+ */
+export const checkLoginOpenId = uuid => {
+  return axios.request({
+    url: `oauth-server/oauth/check?uuid=${uuid}`,
+    method: 'post',
+    data: {
+    }
+  })
+}

+ 1 - 1
src/mixins/index.js

@@ -767,7 +767,7 @@ export const indexMixin = {
           }
           // console.log('3333',window.innerHeight)
           // console.log('4444',document.documentElement.clientHeight,document.documentElement.offsetHeight,document.documentElement.scrollHeight)
-          // console.log('tableHeight', this.tableHeight,   'mainHeight:' + mainHeight, 'searchHeight:' + searchHeight, 'toolsHeight:' + toolsHeight, 'footInfoHeight:' + footInfoHeight)
+          console.log('tableHeight', this.tableHeight,   'mainHeight:' + mainHeight, 'searchHeight:' + searchHeight, 'toolsHeight:' + toolsHeight, 'footInfoHeight:' + footInfoHeight)
         }
         this.tableHeight = tableHeight;
       })

+ 13 - 1
src/router/routers.js

@@ -23,7 +23,8 @@ let menu = [
     name: 'login',
     meta: {
       title: 'Login - 登录',
-      hideInMenu: true
+      hideInMenu: true,
+      notCache: true
     },
     component: () => import('@/view/login/login.vue')
   },
@@ -339,6 +340,17 @@ let menu = [
             },
           },
           {
+            path: '/pur/purReject/add',
+            name: '采购退货-新建',
+            component: () => import('@/view/pur/pur-reject/add.vue'),
+            meta: {
+              title: '新建采购退货',
+              hideInMenu: true,
+              notCache: false,
+              flgRight: false,
+            },
+          },
+          {
             path: '/pur/purEnter/index',
             name: '采购入库',
             component: () => import('@/view/pur/pur-enter/index.vue'),

+ 31 - 26
src/store/module/user.js

@@ -62,6 +62,8 @@ export default {
     roleName: null,
     // 系统参数
     setting: {},
+    // 服务代码
+    svcCode: ''
   },
   mutations: {
     setUserPwd(state, userPwd) {
@@ -107,14 +109,14 @@ export default {
     setAppCode(state, appCode) {
       state.appCode = appCode
     },
-    setFtyId(state, ftyId) {
-      state.ftyId = ftyId
+    setCpId(state, cpId) {
+      state.cpId = cpId
     },
-    setFtyCode(state, ftyCode) {
-      state.ftyCode = ftyCode
+    setCpCode(state, cpCode) {
+      state.cpCode = cpCode
     },
-    setFtyName(state, ftyName) {
-      state.ftyName = ftyName
+    setCpName(state, cpName) {
+      state.cpName = cpName
     },
     setAccess(state, access) {
       state.access = access || []
@@ -161,6 +163,9 @@ export default {
     setPwdDate(state,pwdDate){
       state.pwdDate = pwdDate
     },
+    setSvcCode(state, svcCode){
+      state.svcCode = svcCode
+    }
   },
   getters: {
     messageUnreadCount: state => state.messageUnreadList.length,
@@ -185,14 +190,12 @@ export default {
       })
     },
     // 登录
-    handleLogin({commit}, {ftyCode, userCode, userPwd, appCode}) {
+    handleLogin({commit}, {userCode, userPwd}) {
       userCode = userCode.trim()
       return new Promise((resolve, reject) => {
         login({
-          ftyCode,
           userCode,
           userPwd,
-          appCode
         }).then(res => {
           const data = res.data
           if (data) {
@@ -216,11 +219,11 @@ export default {
       sessionStorage.setItem('online', 'true')
       sessionStorage.setItem('login', 'login')
       sessionStorage.setItem('token', data.accessToken)
-      commit('setId', data.user.userId)
-      commit('setUserCode', data.user.userCode)
-      commit('setUserName', data.user.userName)
+      commit('setId', data.userId)
+      commit('setUserCode', data.userPhone)
+      commit('setUserName', data.userName)
       commit('setToken', data.accessToken)
-      commit('setLoginType', data.user.sysId)
+      // commit('setLoginType', data.user.sysId)
       // todo 前台保存权限
       // commit('setAccess', data.user.funCodeList)
       let menu = data.menu;
@@ -236,24 +239,26 @@ export default {
       // 处理数据
       menu = handleMenu(menu);
       let arr = convertToChildrenMain(menu,'parentId','id','objectPaths');
-      console.log('menu', menu, arr)
+      // console.log('menu', menu, arr)
       commit('setMenuList', arr.copy())
       sessionStorage.setItem('route', JSON.stringify(arr))
       router.addRoutes(filterAsyncRouter(arr,menu))
       commit('setAvator', maxLogo)
-      commit('setFlgInitPwd', data.user.flgInitPwd)
-      commit('setOrgId', data.user.orgId)
-      commit('setOrgName', data.user.orgName)
-      commit('setFtyId', data.user.ftyId)
-      commit('setFtyCode', data.user.ftyCode)
-      commit('setFtyName', data.user.ftyName)
-      commit('setStaffId', data.user.staffId)
-      commit('setStaffName', data.user.staffName)
-      commit('setRoleIds', data.user.roleIds)
-      commit('setUserTableSetting', data.userTableSetting)
+      // commit('setFlgInitPwd', data.user.flgInitPwd)
+      // commit('setOrgId', data.user.orgId)
+      // commit('setOrgName', data.user.orgName)
+      commit('setCpId', data.company.cpId)
+      commit('setCpCode', data.company.cpCode)
+      commit('setCpName', data.company.cpName)
+      commit('setSvcCode', data.company.svcCode)
+
+      // commit('setStaffId', data.user.staffId)
+      // commit('setStaffName', data.user.staffName)
+      // commit('setRoleIds', data.user.roleIds)
+      // commit('setUserTableSetting', data.userTableSetting)
       //菜单类型 默认抽屉
-      commit('setMenuType', data.menuType || 'drawer')
-      commit('setPwdDate', data.user.pwdDate)
+      // commit('setMenuType', data.menuType || 'drawer')
+      // commit('setPwdDate', data.user.pwdDate)
     },
 
     /**

+ 6 - 96
src/view/core/customer/form.vue

@@ -315,12 +315,7 @@ export default {
      * @date   : 2024-02-01 14:30
      */
     changeReportUser(val) {
-      if (val && val.length > 0) {
-        this.formData.orgId = val[0].orgId
-        this.formData.orgName = val[0].orgName
-        this.formData.fenXiaoShangName = val[0].cpName
-        this.formData.channelName = val[0].channelName
-      }
+
     },
     /**
      * @desc   : 选择地址
@@ -328,20 +323,7 @@ export default {
      * @date   : 2024-02-01 14:30
      */
     chooseAddress(value) {
-      this.formData.customerDistrict = value;
-      // 说明是清空
-      if (!value) {
-        this.formData.addressName = null;
-        this.formData.addressFull = null;
-        this.formData.addressGcj02 = {};
-        this.formData.addressArea = {};
-      } else {
-        //按照title进行
-        this.formData.addressName = value.addressName;
-        this.formData.addressGcj02 = value.addressGcj02;
-        this.formData.addressArea = value.addressArea;
-        this.formData.addressFull = value.addressFull + (this.formData.addressNo ? this.formData.addressNo : '');
-      }
+
     },
     /**
      * @desc   : 拼写详细地址
@@ -349,10 +331,7 @@ export default {
      * @date   : 2024-02-01 14:30
      */
     setAddressFull(e) {
-      // 客户区域有值才会拼接详细地址
-      if (!this.setCustomerFlag && this.formData.customerDistrict && this.formData.customerDistrict.addressFull) {
-        this.formData.addressFull = this.formData.customerDistrict.addressFull + (this.formData.addressNo ? this.formData.addressNo : '')
-      }
+
     },
     /**
      * @desc   : 保存的提交事件
@@ -360,15 +339,7 @@ export default {
      * @date   : 2024-02-01 14:30
      */
     submitForm() {
-      this.$refs['formInline'].validate().then(valid => {
-        // 校验
-        if (!valid) {
-          return
-        }
-        this.loading = true
-        //保存
-        this.saveGoods({...this.formData})
-      })
+
     },
     /**
      * @desc   : 新建完毕后清空窗体
@@ -376,43 +347,7 @@ export default {
      * @date   : 2024-02-01 14:30
      */
     clearForm() {
-      let self = this
-      this.setCustomerFlag = true;
-      this.formData = {
-        customerDistrict: null,
-        customerId: null,
-        customerName: null,
-        customerCode: null,
-        customerPhone: null,
-        contactName: null,
-        contactPhones: null,
-        saleStatus: null,
-        reportUser: self.$store.state.user.id,
-        reportUserName: self.$store.state.user.userName,
-        addressArea: null,
-        addressName: null,
-        addressNo: null,
-        addressFull: null,
-        customerTags: [],
-        customerTagNames: [],
-        bankAccount: null,
-        remarks: '',
-        cpId: self.$store.state.user.cpId,
-        orgId: self.$store.state.user.orgId,
-        orgName: self.$store.state.user.orgName,
-        gender: null,
-        toiletCount: null,
-        fitupType: null,
-        houseType: null,
-        fitupStyle: null,
-        ageComposition: null,
-        decisionMaker: null,
-      }
-      // 清空客户区域
-      if (this.$refs.customerDistrict) {
-        this.$refs.customerDistrict.clear();
-      }
-      this.setCustomerFlag = false;
+
     },
 
     /**
@@ -448,31 +383,12 @@ export default {
     getDictionaryData() {
 
     },
-
-    /**
-     * @desc   : 校验
-     * @author : 付斌
-     * @date   : 2024-02-01 14:31
-     */
-    getErrMessage(prop) {
-      return this.errMessage[prop]
-    },
-
-    /**
-     * @desc   : 校验
-     * @author : 付斌
-     * @date   : 2024-02-01 14:31
-     */
-    onValidate({prop, status, error}) {
-      this.$set(this.errMessage, prop, error)
-    },
     /**
      * @desc   : 返回预览页面
      * @author : 付斌
      * @date   : 2024-02-01 14:31
      */
     returnUpperLevel() {
-      this.formData = {}
       this.$router.push('/sale/customer/index')
     },
     /**
@@ -481,13 +397,7 @@ export default {
      * @date   : 2024-02-01 14:31
      */
     selectTag(checked, item) {
-      if (checked) {
-        this.formData.customerTags.push(item.tagId)
-        this.formData.customerTagNames.push(item.tagName)
-      } else {
-        this.formData.customerTags.splice(this.formData.customerTags.indexOf(item.tagId), 1)
-        this.formData.customerTagNames.splice(this.formData.customerTags.indexOf(item.tagId), 1)
-      }
+
     },
   },
   created() {

+ 6 - 43
src/view/core/customer/index.vue

@@ -157,7 +157,6 @@ export default {
       saleStatusList: [],
       // 查询条件
       searchCond: {},
-      //TODO 以后会是动态的所以先做个查询的例子
       searchContent: [
         {
           valueFormat: {code: 'customerName'},
@@ -295,24 +294,7 @@ export default {
      * @date   : 2024-02-01 14:20
      */
     checkOperateIsVisible(name) {
-      if (name === 'follow') {
-        if (this.$store.state.user.cpId === this.$config.hegiiCpId
-          || !this.$libaray.checkButtonHasRight('customer-follow')) {
-          return false;
-        }
-      } else {
-        // 如果是操作就要判断所有
-        if (name.indexOf(',') >= 0) {
-          let names = name.split(',');
-          let flag = false;
-          for (let i in names) {
-            // 递归调取,进行判断 如果都不可见,那么操作也不能见
-            flag = this.checkOperateIsVisible(names[i]);
-          }
-          return flag;
-        }
-      }
-      return true;
+
     },
     /**
      * @desc   : 进入客户页面
@@ -328,8 +310,6 @@ export default {
      * @date   : 2024-02-01 14:20
      */
     clickTab(val) {
-      this.tabsModel = val
-      this.initData(1)
     },
     /**
      * @desc   : 下载模板
@@ -345,13 +325,8 @@ export default {
      * @date   : 2024-02-01 14:20
      */
     follow(e) {
-      if (e.row) {
-        this.followModal = true
-        // 查询客户信息
-        this.getCustomerInfo(e.row.customerId)
-      } else {
-        this.$Message.error(this.$t('W_013'))
-      }
+      this.followModal = true
+
     },
     /**
      * @desc   : 跟进任务
@@ -368,9 +343,7 @@ export default {
      * @date   : 2024-02-01 14:21
      */
     pageSizeChange(pageInfo) {
-      this.pageInfo = pageInfo
-      // 查询数据
-      this.getData()
+
     },
     /**
      * @desc   : 查询事件
@@ -378,12 +351,7 @@ export default {
      * @date   : 2024-02-01 14:21
      */
     initData(currentPage) {
-      this.loading = true
-      this.tableData = []
-      if (currentPage) {
-        this.pageInfo.currentPage = currentPage
-      }
-      this.getData() // 查询数据
+
     },
     /**
      * @desc   : 导入
@@ -391,7 +359,6 @@ export default {
      * @date   : 2024-02-01 14:21
      */
     importExcel() {
-      this.$refs.uploadButton.$el.click()
     },
     /**
      * @desc   : 导入成功
@@ -399,11 +366,7 @@ export default {
      * @date   : 2024-02-01 14:21
      */
     uploadSuccess(res) {
-      if (res.code == 200) {
-        this.$Message.success(this.$t('I_001', {'param': this.$v('import')}))
-      } else {
-        this.$Message.error(res.message)
-      }
+
     },
     /**
      * @desc   : 查询数据

+ 43 - 49
src/view/login/login.vue

@@ -38,42 +38,23 @@
 <!--          <div style="width: 90%;display: flex;justify-content: end">-->
 <!--            {{ this.$config.loginSubTitle }}-->
 <!--          </div>-->
-          <!--        <div class="tab-class">-->
-          <!--          <div :class="active == 0? 'btn-active-class':'btn-class' " id="user" @click="changeMode">密码登录</div>-->
-          <!--          <div :class="active == 1? 'btn-active-class':'btn-class' " id="scan" @click="changeMode">扫码登录</div>-->
-          <!--        </div>-->
+                  <div class="tab-class">
+                    <div :class="active == 0? 'btn-active-class':'btn-class' " id="user" @click="changeMode">密码登录</div>
+                    <div :class="active == 1? 'btn-active-class':'btn-class' " id="scan" @click="changeMode">扫码登录</div>
+                  </div>
           <div v-show="active == 0" class="content">
             <login-form @on-success-valid="handleSubmit" :loading="loading"></login-form>
           </div>
-          <div v-show="active == 1" class="scan">
-            <div class="qr_login" id="qr_login">
-            </div>
-            <!--          <div style="padding-top: 5px"><b>只支持集团企微扫描登录</b></div>-->
+          <div v-show="active == 1" id="scan-login" style="text-align: center; padding: 21px">
+            <img :src="qrcodeUrl" style="width: 250px;height: 250px" v-if="qrcodeUrl"/>
           </div>
 
           <div style="display: flex;justify-content: end;width: 98%">
             ©2024 东科软件 All rights reserved
           </div>
-          <!--                <Card>-->
-          <!--                  <Tabs v-model="tabName" type="card" :capture-focus="true">-->
-          <!--                    &lt;!&ndash;账号登录&ndash;&gt;-->
-          <!--                    <TabPane :label="$t('code_login')" name="name1">-->
-          <!--                      <login-form @on-success-valid="handleSubmit" :loading="loading"></login-form>-->
-          <!--                    </TabPane>-->
-          <!--                    &lt;!&ndash;扫码登录&ndash;&gt;-->
-          <!--                    <TabPane :label="$t('scan_code_login')" name="name2" style="text-align: center;align-self: center;">-->
-          <!--        &lt;!&ndash;              <img src="./../../assets/images/qrcode-wechat-top.png"/>&ndash;&gt;-->
-          <!--                      <div class="qr_login" id="qr_login" v-show="tabName === 'name2'"></div>-->
-          <!--                      <b>只支持集团企微扫描登录</b>-->
-          <!--                    </TabPane>-->
-          <!--                  </Tabs>-->
-          <!--                </Card>-->
         </div>
       </div>
     </div>
-    <!--    <div class="login_foot_pic">-->
-    <!--      <div class="logo"></div>-->
-    <!--    </div>-->
   </div>
 </template>
 
@@ -83,10 +64,12 @@ import {mapActions} from 'vuex'
 import dk_logo from '@/assets/images/dongke_logo.png'
 import dk_mini from '@/assets/images/iboss_mini.png'
 import {localRead, localSave} from "@/libs/base/util";
+import { getQrCode, checkLoginOpenId } from '@/api/system/user/login'
+import uuidv4 from 'uuid/v4'
 
 export default {
   components: {
-    LoginForm,
+    LoginForm
   },
   data() {
     let self = this
@@ -99,6 +82,11 @@ export default {
       active: 0,// 默认在账户登录
       lang: self.$config.currentLang,
       langList: self.$config.languages,
+      getQrCode: getQrCode,
+      checkLoginOpenId: checkLoginOpenId,
+      loginUuid: null,
+      qrcodeUrl: null,
+      interval: null
     }
   },
   methods: {
@@ -114,9 +102,24 @@ export default {
     changeMode(e) {
       if (e.target.id == 'user') {
         this.active = 0;
+        clearInterval(this.interval)
       } else {
-        this.initQvScan()
         this.active = 1;
+        let _this = this
+        this.interval = setInterval(() => {
+          _this.checkLoginOpenId(_this.loginUuid).then(r=>{
+            let res = r.data
+            if (res.code === _this.$config.SUCCESS_CODE) {
+              clearInterval(_this.interval)
+              _this.afterLogin(res.data)
+              this.$router.push({
+                name: this.$config.homeName
+              })
+            } else if (res.code === 1015){
+              _this.$Message.warning(res.message)
+            }
+          })
+        }, 3000)
       }
     },
     /**
@@ -140,6 +143,7 @@ export default {
         this.$Message.destroy()
         if (res.code === 200) {
           if (res.data) {
+            clearInterval(this.interval)
             this.afterLogin(res.data)
           }
           this.$router.push({
@@ -152,28 +156,6 @@ export default {
         this.loading = false
       })
     },
-    /**
-     * @desc   : 企业微信扫码
-     * @author : 洪旭东
-     * @date   : 2022-08-11 09:02
-     */
-    initQvScan() {
-      this.$nextTick(() => {
-        let url = window.location.href.replace(this.$route.name === 'login_hegii' ? 'login/hegii' : 'login', 'login/qv')
-        let wwLogin = new WwLogin({
-          "id": "qr_login",
-          "appid": this.$config.qvScanAppId,
-          "agentid": this.$config.qvScanAgentId,
-          "redirect_uri": encodeURI(url),
-          "state": this.$route.name,
-        });
-        // 修改iframe大小
-        if (wwLogin) {
-          wwLogin.frame.height = '290px';
-          wwLogin.frame.width = '240px';
-        }
-      })
-    },
   },
   created() {
     localSave('tagNaveList', '[]'); // 清除顶部tag
@@ -185,8 +167,20 @@ export default {
       this.lang = this.$config.currentLang
       localSave('local', this.lang);// 设置语言的缓存
     }
+
+    //生成uuid并获取二维码
+    this.loginUuid = uuidv4()
+    this.getQrCode(this.loginUuid).then(r=>{
+      let res = r.data
+      if (res.code === this.$config.SUCCESS_CODE) {
+        this.qrcodeUrl = res.data
+      } else {
+        this.$Message.warning(res.message)
+      }
+    })
   },
   beforeDestroy() {
+    clearInterval(this.interval)
   },
   mounted() {
     let message = this.$route.params.message

+ 5 - 98
src/view/pur/pur-enter/form.vue

@@ -1,11 +1,10 @@
-<!-- @desc:入库办理  @auth:付斌  @time:2024/1/30 15:15 -->
+<!-- @desc:入库办理  @auth:付斌  @time:2024/02/20 15:15 -->
 <template>
   <div class="main-div">
     <DkCollapse @on-change="changeCollapse" ref="collapse">
       <DkPanel prop="basic">
         <DkForm slot="content" ref="formInline" style="width:100%;" name="dk-form" v-model="formData"
-                :rules="ruleInline"
-                @onValidate="onValidate" :labelMaxWords="5">
+                :labelMaxWords="5">
           <!--所属公司-->
           <DkFormItem :required="true" prop="ascpId">
             <SelectPop v-model="formData.ascpId" :options="companyList" :multiple="false" :clearable="false"
@@ -96,7 +95,7 @@
       <DkPanel prop="files">
         <div id="search-cond-div-files-info" ref="search-cond-div-files-info"
              slot="content">
-          <DkPicWall v-model="formData.annexPaths" :disabled="this.allCanNoEdit?true:false"
+          <DkPicWall v-model="formData.annexPaths"
                      folder="t_order/annex_paths" :accept="$config.uploadFileConfig.acceptPicType"
                      :format="['jpg','jpeg','png']"></DkPicWall>
         </div>
@@ -258,16 +257,7 @@ export default {
      * @date   : 2023/11/21 9:05
      */
     changeItemWhId() {
-      let itemData = this.formData.orderEntryItemList
-      let whName = this.warehouseList.filter(it => it.whId == this.formData.entryWhId)
-      if (itemData) {
-        itemData.forEach(it => {
-          it.whId = this.formData.entryWhId
-          it.whId_Name = whName[0].whName
-          it.whName = whName[0].whName
-        })
-        this.$refs['table-select'].$refs.xTable.reloadData(itemData)
-      }
+
     },
     /**
      * @desc   : 选择地址
@@ -275,20 +265,7 @@ export default {
      * @date   : 2024-02-20 8:50
      */
     chooseAddress(value) {
-      this.formData.supplierDistrict = value;
-      // 说明是清空
-      if (!value) {
-        this.formData.addressName = null;
-        this.formData.addressFull = null;
-        this.formData.addressGcj02 = {};
-        this.formData.addressArea = {};
-      } else {
-        //按照title进行
-        this.formData.addressName = value.addressName;
-        this.formData.addressGcj02 = value.addressGcj02;
-        this.formData.addressArea = value.addressArea;
-        this.formData.addressFull = value.addressFull + (this.formData.addressNo ? this.formData.addressNo : '');
-      }
+
     },
     /**
      * @desc   : 保存的提交事件
@@ -296,15 +273,6 @@ export default {
      * @date   : 2024-02-20 14:34
      */
     submitForm() {
-      this.$refs['formInline'].validate().then(valid => {
-        // 校验
-        if (!valid) {
-          return
-        }
-        this.loading = true
-        //保存
-        this.saveOrderEntry({...this.formData})
-      })
     },
 
     /**
@@ -346,8 +314,6 @@ export default {
      * @date   : 2024-02-20 14:35
      */
     btnGroupClick() {
-      this.formData = {}
-      this.closeTag(this.$route)
     },
     /**
      * @desc   : 获取省市区树结构
@@ -387,46 +353,7 @@ export default {
      * @date   : 2024-02-20 8:48
      */
     getTotals(orderEntryItemList) {
-      let table = orderEntryItemList
-      let itemAmount = 0; // 货物总额
-      let weight = 0;// 总重量
-      let volumn = 0;// 总体积
-      let quantityName = this.type == this.$config.formMode.edit ? 'tItemQuantity' : 'entryGoingQuantity'
-      let amountName = this.type == this.$config.formMode.edit ? 'tItemAmount' : 'entryGoingAmount'
-      if (table && table.length > 0) {
-        table.forEach(row => {
-          if (row[amountName]) {
-            // 金额
-            itemAmount += parseFloat(row[amountName]);
-          }
-          // 重量
-          if (row.skuWeight && row[quantityName]) {
-            weight += parseFloat(row[quantityName]) * parseFloat(row.skuWeight);
-          }
-          // 体积
-          if (row.skuVolume && row[quantityName]) {
-            volumn += parseFloat(row[quantityName]) * parseFloat(row.skuVolume);
-          }
 
-          // 如果是组合,需要计算体积和重量
-          if (row['promotionType'] === this.$config.promotionType.combined) {
-            if (row.bomItems && row.bomItems.length > 0) {
-              row.bomItems.forEach(it => {
-                if (it.skuWeight) {
-                  weight += parseFloat(it[quantityName]) * parseFloat(it.skuWeight);
-                }
-                // 体积
-                if (it.skuVolume) {
-                  volumn += parseFloat(it[quantityName]) * parseFloat(it.skuVolume);
-                }
-              })
-            }
-          }
-        })
-      }
-      this.goodsFootFormData.sumGoodsAmount = itemAmount;
-      this.goodsFootFormData.sumWeight = parseFloat(weight.toFixed(6));
-      this.goodsFootFormData.sumVolume = parseFloat(volumn.toFixed(6));
     },
     /**
      * @desc   : 动态加载区域
@@ -438,27 +365,7 @@ export default {
     },
   },
   created() {
-    // 根据用户敏感信息,设置隐藏列
-    let us = this.$store.state.user.userSensitive.filter(f => f.isCheck && f.docCode == this.$config.docCode.fxPurchaseOrder
-      && f.itemName == this.$config.sensitiveItemName.purchasePrice);
-    if (us.length > 0) {
-      this.visUserSensitive = true;
-    }
 
-    this.detail(this.$route.query.entryId)
-    // 获取省市区树结构
-    // this.getArea()
-    if (this.$store.state.user.cityName) {
-      let city = this.$store.state.user.cityName;
-      // 给城市赋值
-      this.cityData.push({key: city, value: city})
-    }
-    // 查询所属公司
-    this.getCompany();
-    // 查询供应商
-    this.getSupplier();
-    // 查询收货仓库
-    this.getWarehouse();
   },
 }
 </script>

+ 5 - 59
src/view/pur/pur-enter/index.vue

@@ -1,4 +1,4 @@
-<!-- @desc:采购入库  @auth:付斌  @time:2024/1/30 15:15 -->
+<!-- @desc:采购入库  @auth:付斌 @time:2024/02/20 15:15 -->
 <template>
   <div class="main-div">
     <!--按钮区-->
@@ -370,17 +370,6 @@ export default {
      * @date   : 2024-02-19 11:34
      */
     initData(currentPage) {
-      // this.$nextTick(() => {
-      //   //查询条件
-      //   this.searchCondOk(this.searchCond)
-      //   this.loading = true
-      //   this.tableData = []
-      //   if (currentPage) {
-      //     this.pageInfo.currentPage = currentPage
-      //   }
-      //   this.getData()
-      // })
-
     },
     /**
      * @desc   : 查看冲正单据
@@ -408,28 +397,7 @@ export default {
      * @date   : 2024-02-19 16:25
      */
     setSearchParams() {
-      let params = this.searchList
-      params.currentPage = this.pageInfo.currentPage
-      params.pageSize = this.pageInfo.pageSize
-      params.flgValid = this.$config.flgValid.valid
-      if (this.$store.state.user.ascpId) {
-        params.ascpId = this.$store.state.user.ascpId  //所属公司
-      }
-      params.entryKinds = [this.$config.entryKind.purchaseEntryKind]
-      if (this.tableModel === 'waitEntry') {
-        if (this.Rectification) {
-          params.entryStatuses = [2, 4, -3, -1]
-        } else {
-          params.entryStatuses = [2, 4, -3]
-        }
-      } else if (this.tableModel === 'ingEntry') {
-        if (this.Rectification) {
-          params.entryStatuses = [3, -2]
-        } else {
-          params.entryStatuses = [3]
-        }
-      }
-      return params
+
     },
     /**
      * @desc   : 列表行变化事件
@@ -437,12 +405,7 @@ export default {
      * @date   : 2024-02-19 16:26
      */
     currentChangeStandard({row}) {
-      if (row) {
-        this.entryId = row.entryId
-        this.currentRow = row
-        this.itemPageInfo.currentPage = 1
-        this.getStandardDetail()
-      }
+
     },
     /**
      * @desc   : 入库处理
@@ -466,8 +429,7 @@ export default {
      * @date   : 2024-02-19 16:26
      */
     pageSizeChange(pageInfo) {
-      this.pageInfo = pageInfo
-      this.getData()
+
     },
 
     /**
@@ -476,29 +438,13 @@ export default {
      * @date   : 2024-02-19 16:26
      */
     itemPageChange(page) {
-      this.itemPageInfo = page
-      this.getStandardDetail()
+
     },
   },
   created() {
     this.primaryKey = 'purEnterId'  // 设置主键Id
     this.routeObjName = 'purEnter'  // 设置路由名称
-
-    // 根据用户敏感信息,设置隐藏列
-    let us = this.$store.state.user.userSensitive.filter(f => f.isCheck && f.docCode == this.$config.docCode.fxPurchaseOrder
-      && f.itemName == this.$config.sensitiveItemName.purchasePrice);
-    if (us.length > 0) {
-      this.visUserSensitive = true;
-    }
-    // //一览查询
-    // this.$nextTick(() => {
-    //   this.initData(1)//初始化数据
-    // })
   },
-  activated() {
-    // //初始化页面数据
-    // this.initData(1)
-  }
 }
 </script>
 

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 23 - 803
src/view/pur/pur-order/form.vue


+ 79 - 308
src/view/pur/pur-order/index.vue

@@ -1,4 +1,4 @@
-<!-- @desc:采购订单  @auth:付斌  @time:2024/1/30 15:15 -->
+<!-- @desc:采购订单  @auth:付斌  @time:2024/02/20 15:15 -->
 <template>
   <div class="main-div">
     <BaseIndexButtonGroup id="BaseIndexButtonGroup">
@@ -20,8 +20,8 @@
       <template #right>
         <BaseIndexButton ref="add" name="add"></BaseIndexButton>
       </template>
-
     </BaseIndexButtonGroup>
+
     <!--  查询条件区域  -->
     <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
       <SearchCond ref="searchCond" v-model="searchCond"
@@ -38,83 +38,75 @@
                  :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/order/export/':''"
                  :export-condition="exportCondition"
                  :tree-flag="true" sum-total-type="total"
-                 @pageChange="pageSizeChange" ref="table-select" :data="tableData" :height="this.tableHeight * split - 35">
-          <DkTableColumn class-name="fixed-left" type="radio" fixed="left" width="45"></DkTableColumn>
-          <DkTableColumn type="seq" width="60" sortable></DkTableColumn>
+                 @pageChange="pageSizeChange" ref="table-select" :data="tableData"
+                 :height="this.tableHeight * split - 35">
           <!--所属公司-->
-          <DkTableColumn field="ascpName" :title="$t('asCpId')" width="130px"></DkTableColumn>
+          <DkTableColumn field="ascpName"></DkTableColumn>
           <!--采购单号-->
           <DkTableColumn :type="$libaray.checkButtonHasRight('purchase-order-edit')?'link':''" field="orderNo"
-                         :title="$t('procureOrderNo')" width="220px"
                          :tree-node="true"
                          @on-link="edit"></DkTableColumn>
           <!--订单日期-->
-          <DkTableColumn field="makingTime" width="120px" data-type="date"
-                         :title="$t('purchaseDate')"></DkTableColumn>
+          <DkTableColumn field="makingTime" data-type="date"></DkTableColumn>
           <!--供应商-->
-          <DkTableColumn field="supplierName" :title="$t('supplier')" width="160px"></DkTableColumn>
+          <DkTableColumn field="supplierName"></DkTableColumn>
           <!--单据状态-->
-          <DkTableColumn field="orderStatusString" :title="$t('orderStatus')" width="120px"></DkTableColumn>
+          <DkTableColumn field="orderStatusString"></DkTableColumn>
           <!--审批状态-->
-          <DkTableColumn field="apvResult" :title="$t('approvalStatus')" width="120px"></DkTableColumn>
+          <DkTableColumn field="apvResult"></DkTableColumn>
           <!--合计金额-->
-          <DkTableColumn field="tSumAmount" width="120px" :title="$t('sumAmount')" :digits="2"
+          <DkTableColumn field="tSumAmount" :digits="2"
                          sum v-if="visUserSensitive"></DkTableColumn>
           <!--货物金额-->
-          <DkTableColumn field="tSumGoodsAmount" width="120px" :title="$t('sumGoodsAmount')" :digits="2"
+          <DkTableColumn field="tSumGoodsAmount" :digits="2"
                          sum v-if="visUserSensitive"></DkTableColumn>
           <!--发货状态-->
-          <DkTableColumn field="outStatusString" :color-cards="['未出库','出库中','出库完成']" :title="$t('shipmentStatus')"
-                         width="120px"></DkTableColumn>
+          <DkTableColumn field="outStatusString" :color-cards="['未出库','出库中','出库完成']"></DkTableColumn>
           <!--合计出库数量-->
-          <DkTableColumn field="sumOrderOutQuantity" width="150px" :title="$t('totalOutQuantity')" :digits="2"
+          <DkTableColumn field="sumOrderOutQuantity" :digits="2"
                          sum></DkTableColumn>
           <!--合计出库金额-->
-          <DkTableColumn field="sumOrderOutAmount" width="150px" :title="$t('totalOutAmount')" :digits="2" sum
+          <DkTableColumn field="sumOrderOutAmount" :digits="2" sum
                          dataType="number" v-if="visUserSensitive"></DkTableColumn>
           <!--入库状态-->
-          <DkTableColumn field="entryStatusString" :color-cards="['未入库','入库中','入库完成']" :title="$t('entryStatus')"
-                         width="120px"></DkTableColumn>
+          <DkTableColumn field="entryStatusString" :color-cards="['未入库','入库中','入库完成']"
+          ></DkTableColumn>
           <!--合计入库数量-->
-          <DkTableColumn field="sumEntryQuantity" width="150px" :title="$t('totalEntryQuantity')" :digits="2"
+          <DkTableColumn field="sumEntryQuantity" :digits="2"
                          sum></DkTableColumn>
           <!--合计入库金额-->
-          <DkTableColumn field="sumEntryAmount" width="150px" :title="$t('totalEntryAmount')" :digits="2" sum
+          <DkTableColumn field="sumEntryAmount" :digits="2" sum
                          dataType="number" v-if="visUserSensitive"></DkTableColumn>
           <!--退货状态-->
-          <DkTableColumn field="rejectStatusString" :color-cards="['有退货','无退货']" :title="$t('rejectStatus')"
-                         width="120px"></DkTableColumn>
+          <DkTableColumn field="rejectStatusString" :color-cards="['有退货','无退货']"></DkTableColumn>
           <!--合计退货数量-->
-          <DkTableColumn field="sumRejectQuantity" width="150px" :title="$t('sumRejectQuantity')" :digits="2"
+          <DkTableColumn field="sumRejectQuantity" :digits="2"
                          sum></DkTableColumn>
           <!--合计退货金额-->
-          <DkTableColumn field="sumRejectAmount" width="150px" :title="$t('sumRejectAmount')" :digits="2"
+          <DkTableColumn field="sumRejectAmount" :digits="2"
                          sum v-if="visUserSensitive"></DkTableColumn>
           <!--预计收货日期-->
-          <DkTableColumn field="entryTime" width="140px" data-type="date"
-                         :title="$t('expectedDeliverDate')"></DkTableColumn>
+          <DkTableColumn field="entryTime" data-type="date"></DkTableColumn>
           <!--收货地址-->
-          <DkTableColumn field="addressFull" width="250px" dataType="string"
-                         :title="$t('takeOverAddress')"></DkTableColumn>
+          <DkTableColumn field="addressFull"></DkTableColumn>
           <!--收货人-->
-          <DkTableColumn field="contactName" width="120px" :title="$t('consignee')"></DkTableColumn>
+          <DkTableColumn field="contactName"></DkTableColumn>
           <!--收货电话-->
-          <DkTableColumn field="customerPhone" width="120px" :title="$t('consigneePhone')"></DkTableColumn>
+          <DkTableColumn field="customerPhone"></DkTableColumn>
           <!--收货仓库-->
-          <DkTableColumn field="entryWhName" :title="$t('receivingWarehouse')" width="120px"></DkTableColumn>
+          <DkTableColumn field="entryWhName"></DkTableColumn>
           <!--推送状态-->
-          <DkTableColumn field="erpPushStatusName" :title="$t('erpPushStatus')" width="120px"></DkTableColumn>
+          <DkTableColumn field="erpPushStatusName"></DkTableColumn>
           <!--推送结果-->
-          <DkTableColumn field="erpPushResult" width="120px"></DkTableColumn>
+          <DkTableColumn field="erpPushResult"></DkTableColumn>
           <!--制单人-->
-          <DkTableColumn field="makingUserName" width="120px" :title="$t('makingUser')"></DkTableColumn>
+          <DkTableColumn field="makingUserName"></DkTableColumn>
           <!--制单人-采购订单-->
-          <DkTableColumn field="makingUserPurName" width="120px" :title="$t('makingUserPurName')"></DkTableColumn>
+          <DkTableColumn field="makingUserPurName"></DkTableColumn>
           <!--制单日期-->
-          <DkTableColumn field="makingTime" width="120px" data-type="dateTime"
-                         :title="$t('makingData')"></DkTableColumn>
+          <DkTableColumn field="makingTime" data-type="dateTime"></DkTableColumn>
           <!--备注-->
-          <DkTableColumn field="remarks" width="250px"></DkTableColumn>
+          <DkTableColumn field="remarks"></DkTableColumn>
         </DkTable>
       </div>
       <div slot="bottom">
@@ -125,8 +117,8 @@
                    :expand-flag="true"
                    :id="'table-'+$options.name" :show-footer="true"
                    :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/order_item/export/'+orderId:''"
-                   name="table" ref="detail-select" :data="tableDataDetail_goodsDetail" :height="this.tableHeight * (1-split)">
-            <DkTableColumn type="seq" width="60" sortable></DkTableColumn>
+                   name="table" ref="detail-select" :data="tableDataDetail_goodsDetail"
+                   :height="this.tableHeight * (1-split)">
             <DkTableColumn
               v-for="(item, index) in tableDataTitle_goodsDetail"
               :key="detailModel+index"
@@ -148,10 +140,9 @@
         <div v-show="reviewResumeFlag">
           <DkTable :pageFlag="false" :pageTotalFlag="false" :id="'table-'+$options.name"
                    name="table" ref="file-select" :data="tableDataDetail_files" :height="this.tableHeight * (1-split)">
-            <DkTableColumn type="seq" width="60" sortable></DkTableColumn>
             <DkTableColumn field="docType" min-width="150" width="150"></DkTableColumn>
-            <DkTableColumn field="name" :title="$t('fileName')" min-width="300" width="300"></DkTableColumn>
-            <vxe-column field="createTime" :title="$t('uploadTime')" min-width="150" width="150"></vxe-column>
+            <DkTableColumn field="name" min-width="300" width="300"></DkTableColumn>
+            <vxe-column field="createTime" min-width="150" width="150"></vxe-column>
             <vxe-column :title="$t('picture')" class-name="img-column" width="100">
               <template #default="{row}">
                 <img :src="$config.imgUrl + row.url" v-if="row.type == 'img' || row.type == 'image'"
@@ -209,15 +200,14 @@ export default {
       tableDataDetail_files: [],  // 用于存放订单附件
       tableDataTitle: [],
       tableDataTitle_goodsDetail: [
-        {field: 'skuModel', width: '120px', type: 'text', treeNode: true},
-        {field: 'skuName', width: '200px', type: 'text'},
-        {field: 'skuCode', width: '100px', type: 'text'},
-        {field: 'bomSkuCode', width: '120px', type: 'text'},
+        {field: 'skuModel', treeNode: true},
+        {field: 'skuName'},
+        {field: 'skuCode'},
+        {field: 'bomSkuCode'},
         //采购数量
         {
           field: 'tItemQuantity',
           title: self.$t('purchaseQuantity'),
-          width: '120px',
           type: 'number',
           digits: 0,
           sum: true
@@ -225,7 +215,6 @@ export default {
         //采购单价
         {
           field: 'priceSale',
-          width: '120px',
           title: self.$t('purchasePriceSale'),
           digits: 2,
           type: 'number',
@@ -235,7 +224,6 @@ export default {
         {
           field: 'tItemAmount',
           title: self.$t('purchaseAmount'),
-          width: '120px',
           type: 'number',
           digits: 2,
           sum: true,
@@ -245,27 +233,24 @@ export default {
         {
           field: 'outStatusString',
           title: self.$t('shipmentStatus'),
-          width: '120px',
           type: 'number',
           digits: 2,
           sum: true
         },
         //出库中数量
-        {field: 'outGoingQuantity', width: '120px', type: 'number', digits: 0, dataType: 'number', sum: true},
+        {field: 'outGoingQuantity', type: 'number', digits: 0, dataType: 'number', sum: true},
         //已出库数量
-        {field: 'outQuantity', width: '120px', type: 'number', digits: 0, dataType: 'number', sum: true},
+        {field: 'outQuantity', type: 'number', digits: 0, dataType: 'number', sum: true},
         //入库状态
         {
           field: 'entryStatusString',
           title: self.$t('entryStatus'),
-          width: '120px',
           type: 'text',
         },
         //入库中数量
         {
           field: 'entryGoingQuantity',
           title: self.$t('quantityInStorage'),
-          width: '120px',
           type: 'number',
           digits: 0,
           dataType: 'number',
@@ -275,7 +260,6 @@ export default {
         {
           field: 'entryQuantity',
           title: self.$t('quantityInStock'),
-          width: '120px',
           type: 'number',
           digits: 0,
           dataType: 'number',
@@ -285,14 +269,12 @@ export default {
         {
           field: 'rejectStatusString',
           title: self.$t('rejectStatus'),
-          width: '120px',
           type: 'text',
         },
         //退货中数量
         {
           field: 'entryRejectQuantity',
           title: self.$t('rejectGoingQuantity'),
-          width: '120px',
           type: 'number',
           digits: 0,
           dataType: 'number',
@@ -302,62 +284,61 @@ export default {
         {
           field: 'rejectQuantity',
           title: self.$t('rejectOutQuantity'),
-          width: '120px',
           type: 'number',
           digits: 0,
           dataType: 'number',
           sum: true
         },
         //商品品牌
-        {field: 'skuBrand', width: '120px', type: 'text'},
+        {field: 'skuBrand'},
         //型号分类
-        {field: 'skuTypeName', title: self.$t('skuTypeBom'), width: '120px', type: 'text'},
+        {field: 'skuTypeName', title: self.$t('skuTypeBom')},
         //非标号
-        {field: 'nonStandardCode', width: '120px', type: 'text', title: self.$t('nonStandardCode')},
+        {field: 'nonStandardCode', title: self.$t('nonStandardCode')},
         //计量标识
-        {field: 'unitName', width: '120px', type: 'text', title: self.$t('flgEstimate')},
+        {field: 'unitName', title: self.$t('flgEstimate')},
         //收货仓库
-        {field: 'entryWhName', width: '120px', title: self.$t('receivingWh'), type: 'text'},
+        {field: 'entryWhName', title: self.$t('receivingWh')},
         //经销商库区
-        {field: 'whName', width: '120px', title: self.$t('supplierWareHouse'), type: 'text'},
+        {field: 'whName', title: self.$t('supplierWareHouse')},
         //促销类型
-        {field: 'promotionTypeName', width: '120px', type: 'text'},
+        {field: 'promotionTypeName'},
         //营销活动
-        {field: 'activityName', width: '220px', type: 'text'},
+        {field: 'activityName'},
         //促销名称
-        {field: 'promotionName', width: '120px', type: 'text', title: self.$t('promoName')},
+        {field: 'promotionName', title: self.$t('promoName')},
         //重量
-        {field: 'skuWeight', width: '120px', type: 'number', digits: 2, sum: true},
+        {field: 'skuWeight', type: 'number', digits: 2, sum: true},
         //体积
-        {field: 'skuVolume', width: '120px', type: 'number', digits: 2, sum: true},
+        {field: 'skuVolume', type: 'number', digits: 2, sum: true},
         //备注
-        {field: 'remarks', width: '220px', type: 'text'},
+        {field: 'remarks'},
       ],
       tableDataTitle_returnDetail: [
-        {field: 'skuModel', width: '120px', type: 'text'},
-        {field: 'skuName', width: '200px', type: 'text'},
-        {field: 'skuCode', width: '100px', type: 'text'},
-        {field: 'spuCode', width: '120px', type: 'text'},
-        {field: 'rejectQuantity', width: '200px', digits: 0, type: 'number', sum: true},
-        {field: 'rejectAmount', width: '200px', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
-        {field: 'skuWeight', width: '120px', type: 'number', digits: 2, sum: true},
-        {field: 'skuVolume', width: '120px', type: 'number', digits: 2, sum: true},
-        {field: 'remarks', width: '220px', type: 'text'},
+        {field: 'skuModel'},
+        {field: 'skuName'},
+        {field: 'skuCode'},
+        {field: 'spuCode'},
+        {field: 'rejectQuantity', digits: 0, type: 'number', sum: true},
+        {field: 'rejectAmount', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
+        {field: 'skuWeight', type: 'number', digits: 2, sum: true},
+        {field: 'skuVolume', type: 'number', digits: 2, sum: true},
+        {field: 'remarks'},
       ],
       tableDataTitle_refundDetail: [
-        {field: 'refundNo', width: '220px', type: 'text'},
-        {field: 'refundStatus', width: '200px', type: 'text', title: self.$t('refundStatusName')},
-        {field: 'erpRefundTypeName', width: '140px', type: 'text'},
-        {field: 'erpRefundNo', width: '220px', type: 'text'},
-        {field: 'erpRefundAmount', width: '150px', digits: 2, type: 'number', sum: true, UserSensitiveFlag: true},
-        {field: 'applyAmount', width: '150px', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
-        {field: 'refundAmount', width: '150px', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
-        {field: 'cancelAmount', width: '150px', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
-        {field: 'settlementTypeName', width: '180px', type: 'text'},
-        {field: 'erpApvResult', width: '180px', type: 'text'},
-        {field: 'erpApvResultTime', width: '120px', type: 'text'},
-        {field: 'erpApvResultMsg', width: '120px', type: 'text'},
-        {field: 'remarks', width: '220px', type: 'text'},
+        {field: 'refundNo'},
+        {field: 'refundStatus', title: self.$t('refundStatusName')},
+        {field: 'erpRefundTypeName'},
+        {field: 'erpRefundNo'},
+        {field: 'erpRefundAmount', digits: 2, type: 'number', sum: true, UserSensitiveFlag: true},
+        {field: 'applyAmount', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
+        {field: 'refundAmount', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
+        {field: 'cancelAmount', type: 'number', digits: 2, sum: true, UserSensitiveFlag: true},
+        {field: 'settlementTypeName'},
+        {field: 'erpApvResult'},
+        {field: 'erpApvResultTime'},
+        {field: 'erpApvResultMsg'},
+        {field: 'remarks'},
       ],
       orderId: 0,//查询明细需要的订单id
       orderType: self.$config.orderType.order,
@@ -579,8 +560,6 @@ export default {
      * @date   : 2024-02-19 10:02
      */
     pageSizeChange(pageInfo) {
-      this.pageInfo = pageInfo
-      this.getData() // 查询数据
     },
     /**
      * @desc   : 总单行事件选择
@@ -588,18 +567,7 @@ export default {
      * @date   : 2024-02-19 10:02
      */
     selectChangeTable(e) {
-      // 先把明细恢复到第一个
-      this.detailModel = this.$config.orderDetailAllocation.goodsDetail;
-      if (e && e.row) {
-        this.orderId = e.row.orderId
-        // 订单类型
-        this.orderType = e.row.orderType
-        //订单附件
-        this.tableDataDetail_files = e.row.annexPaths
-        //根据总单id查询明细以及收款
-        this.initDetailData(this.$config.orderDetailAllocation.goodsDetail,
-          JSON.stringify({'type': this.orderType}))
-      }
+
     },
     /**
      * @desc   : 总单tab切换
@@ -607,11 +575,7 @@ export default {
      * @date   : 2024-02-19 10:02
      */
     tabsClick(val) {
-      //如果切换的tab存在就去根据条件查询
-      if (val) {
-        this.totalTab = val
-        this.initData(1, val)
-      }
+
     },
     /**
      * @desc   : 点击Tab进行切换
@@ -619,13 +583,7 @@ export default {
      * @date   : 2024-02-19 11:33
      */
     detailTabsClick(val) {
-      if (val === 'goodsDetail') {
-        this.standardGoodsFlag = true
-        this.reviewResumeFlag = false
-      } else if (val === 'filesDetail') {
-        this.standardGoodsFlag = false
-        this.reviewResumeFlag = true
-      }
+
     },
     /***************************设定参数函数************************************/
     /**
@@ -642,194 +600,7 @@ export default {
   created() {
     this.primaryKey = 'purOrderId'  // 设置主键Id
     this.routeObjName = 'purOrder'  // 设置路由名称
-    // 根据用户敏感信息,设置隐藏列
-    let us = this.$store.state.user.userSensitive.filter(f => f.isCheck && f.docCode == this.$config.docCode.fxPurchaseOrder
-      && f.itemName == this.$config.sensitiveItemName.purchasePrice);
-    if (us.length > 0) {
-      this.visUserSensitive = true;
-    }
   },
 }
 </script>
 
-<style lang="less" scoped>
-.main-div {
-  padding: 0 0 0 1px;
-  min-width: 1050px;
-  height: 80%;
-  overflow-y: auto;
-  position: relative;
-}
-
-.goods-menu::-webkit-scrollbar {
-  /*滚动条整体样式*/
-  width: 0; /*高宽分别对应横竖滚动条的尺寸*/
-  height: 0;
-}
-
-.goods-menu::-webkit-scrollbar-thumb {
-  /*滚动条里面小方块*/
-  border-radius: 10px;
-  box-shadow: inset 0 0 5px #2d8cf0;
-  background: #fff;
-}
-
-.goods-menu::-webkit-scrollbar-track {
-  /*滚动条里面轨道*/
-  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
-  border-radius: 10px;
-  background: #ededed;
-}
-
-/deep/ .goods-menu {
-  border: 1px solid #e8eaec;
-  width: fit-content;
-  overflow-y: auto;
-  overflow-x: hidden;
-
-  ul:after {
-    background: #fff;
-  }
-
-  ul {
-    .ivu-menu-item-selected {
-      background: #f0faff !important;
-    }
-
-    li {
-      background-color: #fff !important;
-      text-align: left;
-    }
-  }
-}
-
-/deep/ .tabs {
-  .ivu-tabs-bar {
-    margin-bottom: 0 !important;
-  }
-}
-
-/deep/ .el-tabs__nav {
-  div {
-    font-size: 10px;
-  }
-}
-
-/deep/ .el-tabs__header {
-  margin-bottom: 0 !important;
-}
-
-/deep/ .ivu-menu-horizontal {
-  height: 25px !important;
-  line-height: 10px !important;
-}
-
-.menu:after {
-  background: #fff;
-}
-
-.menu {
-  height: 50px;
-  z-index: 10;
-  background: #fff;
-  margin-bottom: 5px;
-
-  li {
-    background-color: #fff !important;
-    text-align: center;
-  }
-}
-
-.menu-2 {
-  width: 138px;
-  line-height: 20px;
-  text-align: center;
-  background: #f8f8f9;
-  border-bottom: 1px solid #e8eaec;
-  position: absolute;
-  z-index: 11
-}
-
-/deep/ .el-tabs__item {
-  height: 20px;
-}
-
-.main-div::-webkit-scrollbar {
-  /*滚动条整体样式*/
-  width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
-  height: 0;
-}
-
-.main-div::-webkit-scrollbar-thumb:hover {
-  /*滚动条里面小方块*/
-  border-radius: 10px;
-  box-shadow: inset 0 0 5px #2d8cf0;
-  background: #2d8cf0;
-}
-
-.main-div::-webkit-scrollbar-track:hover {
-  /*滚动条里面轨道*/
-  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
-  border-radius: 10px;
-  background: #ededed;
-}
-
-.main-div::-webkit-scrollbar-thumb {
-  /*滚动条里面小方块*/
-  border-radius: 10px;
-  box-shadow: inset 0 0 5px #f5f7f9;
-  background: #f5f7f9;
-}
-
-.main-div::-webkit-scrollbar-track {
-  /*滚动条里面轨道*/
-  box-shadow: inset 0 0 5px #f5f7f9;
-  border-radius: 10px;
-  background: #f5f7f9;
-}
-
-.quick-top-div {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-
-/deep/ .quick-top-div-icon {
-  width: 10%;
-  text-align: right;
-  padding-right: 5px;
-}
-
-.table-full-screen {
-  margin-top: 1px;
-  padding: 0px;
-  position: fixed;
-  top: 0;
-  height: 100vh;
-  width: calc(~'100% - 210px');
-  z-index: 12;
-}
-
-
-//酷家乐弹窗 /deep/
-/deep/ .kjl-modal .ivu-modal {
-  height: 88%;
-  overflow: hidden;
-}
-
-/deep/ .kjl-modal .ivu-modal .ivu-modal-content {
-  height: 115%;
-  overflow: hidden;
-}
-
-/deep/ .kjl-modal .ivu-modal .ivu-modal-content .ivu-modal-body {
-  height: 80%;
-  overflow: auto;
-}
-
-/deep/ .img-column .vxe-cell {
-  height: unset !important;
-  padding: 5px 0;
-}
-</style>

+ 18 - 0
src/view/pur/pur-reject/add.vue

@@ -0,0 +1,18 @@
+<template>
+  <CommonForm type="add" ></CommonForm>
+</template>
+
+<script>
+import CommonForm from './form'
+
+export default {
+  name: 'pur-reject-add',
+  components:{
+    CommonForm
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 689 - 0
src/view/pur/pur-reject/form.vue

@@ -0,0 +1,689 @@
+<!-- @desc:采购退货新建  @auth:付斌  @time:2024/02/20 15:15 -->
+<template>
+  <div class="main-div" style="position: relative;">
+    <!--按钮区-->
+    <BaseIndexButtonGroup ref="BaseIndexButtonGroup1" id="BaseIndexButtonGroup1">
+      <template #right>
+        <BaseIndexButton ref="selectSourceOrder" name="selectSourceOrder"></BaseIndexButton>
+      </template>
+    </BaseIndexButtonGroup>
+
+    <DkCollapse @on-change="changeCollapse" ref="collapse">
+      <!--  单据信息  -->
+      <DkPanel prop="essentialInformation">
+        <DkForm slot="content" ref="formInline" v-model="formData"
+                style="width:100%" :label-max-words="5">
+          <!--所属公司-->
+          <DkFormItem :label="$t('affiliatedCompany')"
+                      prop="ascpId" :required="true">
+            <SelectMagnifier v-model="formData.ascpId" :displayText="formData.cpName"
+                             :type="this.$config.MagnifierType.company"
+                             :readonly="true"
+                             @ok="ascpIdOk"
+                             :multiple="false"/>
+          </DkFormItem>
+          <!--采购退货单号-->
+          <DkFormItem prop="rejectNo" :label="$t('procureRejectNo')">
+            <InputPop ref="rejectNo" v-model="formData.rejectNo" :readonly="true"/>
+          </DkFormItem>
+          <!--供应商-->
+          <DkFormItem prop="supplierId" :label="$t('supplier')" :required="true">
+            <SelectMagnifier v-model="formData.supplierId" :display-text="formData.supplierName"
+                             :type="this.$config.MagnifierType.supplier"
+                             :other-condition="{cpId:$store.state.user.cpId,orgId:$store.state.user.orgId}"
+                             @ok="supplierOk"
+                             :readonly="true"
+                             :multiple="false"/>
+          </DkFormItem>
+          <!--预计发货日期-->
+          <DkFormItem prop="deliveryDate">
+            <DatePickerPop v-model="formData.deliveryDate"
+                           :placeholder="$t('inputWords',{'search-name':$t('deliveryDate')})"
+                           :readonly="true"
+                           type="date" :short-cut-flag="true"/>
+          </DkFormItem>
+          <!--退货日期-->
+          <DkFormItem :label="$t('rejectMakingTime')" prop="makingTime">
+            <DatePickerPop v-model="formData.makingTime"
+                           :placeholder="$t('inputWords',{'search-name':$t('makingTime')})"
+                           :readonly="true"
+                           type="date" :short-cut-flag="true"/>
+          </DkFormItem>
+          <!--退件收货人-->
+          <DkFormItem prop="contactName" :label="$t('rejectContactName')">
+            <InputPop ref="contactName" :readonly="true" v-model="formData.contactName"/>
+          </DkFormItem>
+          <!--退件收货电话-->
+          <DkFormItem prop="contactPhones" :label="$t('rejectContactPhones')">
+            <InputPop :telephone="true" :readonly="true" ref="contactPhones" v-model="formData.contactPhones"/>
+          </DkFormItem>
+          <!--客户区域-->
+          <!--          <DkFormItem prop="addressPosition"-->
+          <!--                      :required="true">-->
+          <!--            &lt;!&ndash; 高德 &ndash;&gt;-->
+          <!--            <RegionsChooseAmap v-model="regionData" :options="cityData" :default-value="formData.addressName"-->
+          <!--                               @on-choose="chooseAddress"></RegionsChooseAmap>-->
+          <!--          </DkFormItem>-->
+          <!--门牌号-->
+          <DkFormItem prop="addressNo" :required="true">
+            <InputPop ref="addressNo"
+                      v-model="formData.addressNo"/>
+          </DkFormItem>
+          <!--收货地址-->
+          <DkFormItem :label="$t('rejectAddressFull')" prop="addressFull">
+            <InputPop ref="addressFull" :readonly="true" v-model="formData.addressFull"/>
+          </DkFormItem>
+          <!--          &lt;!&ndash;自动办理出库&ndash;&gt;-->
+          <!--          <DkFormItem prop="flgAutoIvt">-->
+          <!--            <i-switch v-model="formData.flgAutoIvt" @on-change="changeOutStatus" :disabled="this.switchFlag"/>-->
+          <!--          </DkFormItem>-->
+          <!--出库日期-->
+          <DkFormItem :label="$t('outTime')" prop="outTime">
+            <DatePickerPop v-model="formData.outTime"
+                           :placeholder="$t('inputWords',{'search-name':$t('outTime')})"
+                           :readonly="true"
+                           type="date" :short-cut-flag="true"/>
+          </DkFormItem>
+          <!--备注-->
+          <DkFormItem prop="remarks">
+            <InputPop v-model="formData.remarks" maxlength=500 textareaFlag/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <!--商品信息-->
+      <DkPanel prop="goodsInformation">
+        <div id="search-cond-div-goods-info" ref="search-cond-div-goods-info" slot="content">
+          <EditTable ref="goodsTable" :data="formData.orderOutRejectItemVOList"
+                     :columns-social="this.type === this.$config.formMode.add?detailAddColumns:detailColumns"
+                     :columns="(this.type === this.$config.formMode.add)?(visUserSensitive? detailAddColumns : detailAddColumns.filter(it => !it.flgUserSensitive))
+                                    :(visUserSensitive ?detailColumns : detailColumns.filter(it => !it.flgUserSensitive))"
+                     :height="this.tableHeight-20"
+                     :addFlag="false"
+                     @changeValue="changeValue"
+                     @delRow="delValue"
+                     :flgHidePrice="!visUserSensitive"
+          ></EditTable>
+          <div>
+            <DkForm ref="goodsFootFormData" v-model="goodsFootFormData" :labelMaxWords="5" name="dk-form"
+                    class="form-content-class">
+              <!--退货总额-->
+              <DkFormItem prop="sumGoodsAmount" :label="$t('rejectSumAmount')">
+                <InputNumberPop ref="sumGoodsAmount" v-model="goodsFootFormData.sumGoodsAmount" :clearable="false"
+                                :digits="2" :readonly="true"/>
+              </DkFormItem>
+              <!--总重量-->
+              <DkFormItem prop="sumWeight">
+                <InputNumberPop ref="sumWeight" v-model="goodsFootFormData.sumWeight" :digits="2"
+                                :readonly="true" unit="KG"/>
+              </DkFormItem>
+              <!--总体积-->
+              <DkFormItem prop="sumVolume">
+                <InputNumberPop ref="sumVolume" v-model="goodsFootFormData.sumVolume" :digits="2"
+                                :readonly="true" unit="m³"/>
+              </DkFormItem>
+            </DkForm>
+          </div>
+        </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"
+                     folder="t_order/annex_paths" :accept="$config.uploadFileConfig.acceptPicType"
+                     :format="['jpg','jpeg','png']"></DkPicWall>
+        </div>
+      </DkPanel>
+    </DkCollapse>
+
+    <!--      下部分按钮区域-->
+    <DkSaveButton
+      ref="saveButton"
+      :showQuotation=true :loading="loading"
+      @save="submitForm(true)"
+      @close="closeForm">
+    </DkSaveButton>
+
+    <!--选择源单-->
+    <DkModal
+      :loading="loading"
+      v-model="selectSourceOrderFlag"
+      :title="$t('selectSourceOrder')"
+      width="1600px"
+      @modalOk="purchaseBasedOnSalesOk"
+      @modalCancel="clearPurchaseBasedOnSales"
+    >
+      <!-- 总单-->
+      <card :padding=0 style="margin-top: 1px;padding: 0">
+        <!-- 查询条件-->
+        <DkForm ref="selectSourceOrderFormData" v-model="selectSourceOrderFormData" name="select-source-order-form"
+                class="form-content-class" style="margin-top: 5px">
+          <DkButton @click="selectSourceOrder(true)"> {{ $t('search') }}</DkButton>
+          <DkButton style="margin-left: 5px" @click="clearPurchaseBasedOnSales"> {{ $t('clear') }}</DkButton>
+          <!--采购单号-->
+          <DkFormItem prop="procureOrderNo" :label="$t('procureOrderNo')">
+            <InputPop ref="procureOrderNo" :placeholder="$t('inputWords',{'search-name':$t('procureOrderNo')})"
+                      v-model="selectSourceOrderFormData.procureOrderNo"/>
+          </DkFormItem>
+          <!--入库单号-->
+          <DkFormItem prop="entryNo" :label="$t('entryNo')">
+            <InputPop ref="entryNo" v-model="selectSourceOrderFormData.entryNo"/>
+          </DkFormItem>
+          <!--供应商-->
+          <DkFormItem prop="supplierId" :label="$t('supplier')">
+            <SelectMagnifier v-model="selectSourceOrderFormData.supplierId"
+                             :display-text="selectSourceOrderFormData.supplierName"
+                             :type="this.$config.MagnifierType.supplier"
+                             :other-condition="{cpId:$store.state.user.cpId,orgId:$store.state.user.orgId}"
+                             :multiple="false"/>
+          </DkFormItem>
+          <!--收货人-->
+          <DkFormItem prop="contactName" :label="$t('consignee')">
+            <InputPop ref="contactName" v-model="selectSourceOrderFormData.contactName"/>
+          </DkFormItem>
+          <!--收货电话-->
+          <DkFormItem prop="contactPhone" :label="$t('consigneePhone')">
+            <InputPop ref="contactPhone" v-model="selectSourceOrderFormData.contactPhone"/>
+          </DkFormItem>
+          <!--商品编码-->
+          <DkFormItem prop="skuCode" :label="$t('goodCode')">
+            <InputPop ref="skuCode" v-model="selectSourceOrderFormData.skuCode"/>
+          </DkFormItem>
+          <!--商品名称-->
+          <DkFormItem prop="skuName" :label="$t('skuName')">
+            <InputPop ref="skuName" v-model="selectSourceOrderFormData.skuName"/>
+          </DkFormItem>
+          <!--商品型号-->
+          <DkFormItem prop="skuModel" :label="$t('skuModel')">
+            <InputPop ref="skuModel" v-model="selectSourceOrderFormData.skuModel"/>
+          </DkFormItem>
+          <!--详细地址-->
+          <DkFormItem prop="addressFull" :label="$t('takeOverAddress')">
+            <InputPop ref="addressFull" v-model="selectSourceOrderFormData.addressFull"/>
+          </DkFormItem>
+          <!--采购日期-->
+          <DkFormItem prop="makingTime" :label="$t('purchaseDate')">
+            <DatePickerPop v-model="selectSourceOrderFormData.makingTime"
+                           :placeholder="$t('inputWords',{'search-name':$t('purchaseDate')})"
+                           type="date" :short-cut-flag="true"/>
+          </DkFormItem>
+        </DkForm>
+        <DkTable primaryKey="itemId"
+                 ref="select-source-order-select" :id="'table-'+$options.name"
+                 name="table"
+                 :data="selectSourceOrderTableData"
+                 :height="selectSourceOrderHeight-100"
+                 :lazy="false"
+                 :selectFlag="false"
+                 :operateFlag="false"
+                 :link-click-checked="true"
+                 @current-change="selectChangeTable"
+                 @pageChange="selectSourceOrderPageSizeChange">
+          <DkTableColumn class-name="fixed-left" type="radio" fixed="left" width="45"></DkTableColumn>
+          <DkTableColumn type="seq" align="center" width="60" min-width="44px"></DkTableColumn>
+          <DkTableColumn v-for="(item,index) in selectSourceOrderColumns" :key="index" :field="item.field"
+                         v-if="!item.flgUserSensitive"
+                         :title="item.title"
+                         :width="item.width"
+                         :filter="false"
+                         :resize-flag="index === selectSourceOrderColumns.length - 1"></DkTableColumn>
+        </DkTable>
+      </card>
+      <!-- 明细-->
+      <card ref="buttonCard" class="function-button-card" :padding=0
+            style="margin-top: 1px;overflow-y: auto;padding: 0">
+        <DkTable primaryKey="itemId"
+                 ref="select-source-order-detail-select"
+                 name="table"
+                 :data="selectSourceOrderDetailTableData"
+                 :height="selectSourceOrderHeight-85"
+                 :pageTotalFlag="false"
+                 :pageFlag="false"
+                 :selectFlag="false"
+                 :link-click-checked="true"
+                 :operateFlag="false">
+          <DkTableColumn class-name="fixed-left" type="checkbox" fixed="left" width="45"></DkTableColumn>
+          <DkTableColumn type="seq" align="center" width="60" min-width="44px"></DkTableColumn>
+          <DkTableColumn v-for="(item,index) in selectSourceOrderDetailColumns" :key="index" :field="item.field"
+                         v-if="!item.flgUserSensitive"
+                         :title="item.title"
+                         :width="item.width"
+                         :filter="false"
+                         :resize-flag="index === selectSourceOrderColumns.length - 1"></DkTableColumn>
+        </DkTable>
+      </card>
+    </DkModal>
+  </div>
+</template>
+
+<script>
+import {formMixin} from '@/mixins/form'
+
+export default {
+  components: {},
+  mixins: [formMixin],
+  data() {
+    let self = this
+    return {
+      //自动办理出库只读标识
+      switchFlag: false,
+      //用户敏感信息隐藏
+      visUserSensitive: false,
+      //选择源单
+      selectSourceOrderFlag: false,
+      selectSourceOrderTableData: [],//总单数据
+      selectSourceOrderDetailTableData: [],//明细数据
+      selectSourceOrderHeight: 350,
+      //总单字段
+      selectSourceOrderColumns: [
+        {field: 'supplierName', width: '200px', type: 'text'},//供应商名称
+        {field: 'entryNo', title: self.$t('purchaseEntryNo'), type: 'disabled'},//采购入库单
+        {field: 'makingTime', title: self.$t('purchaseDate'), type: 'disabled'},//采购日期
+        {field: 'entryStatusString', title: self.$t('entryStatus'), type: 'disabled'},//入库状态
+        {field: 'sumEntryQuantity', width: '120px', type: 'number', digits: 0, dataType: 'number', sum: true},//入库总数
+        {
+          field: 'sumEntryAmount',
+          width: '120px',
+          type: 'number',
+          flgUserSensitive: true,
+          digits: 0,
+          dataType: 'number',
+          sum: true
+        },//入库总额
+        {field: 'supplierContactName', title: self.$t('contactName'), width: '200px', type: 'text'},//联系人
+        {field: 'supplierContactPhone', title: self.$t('contactPhones'), width: '200px', type: 'text'},//联系电话
+        {field: 'doneUserName', width: '120px', type: 'text'},//办理人
+        {field: 'doneTime', width: '120px', type: 'text'},//办理时间
+        {field: 'makingUserName', width: '120px', type: 'text'},//制单员
+        {field: 'makingTime', width: '120px', type: 'text', title: self.$t('makingData')},//制单时间
+      ],
+      //明细字段
+      selectSourceOrderDetailColumns: [
+        {field: 'canRejectQuantity', title: self.$t('returnableQuantity'), type: 'number', digits: 2},//可退数量
+        {field: 'skuModel', type: 'text'},//型号
+        {field: 'skuName', width: '200px', type: 'text'},//商品名称
+        {field: 'skuCode', width: '100px', type: 'text'},//sku编码
+        {field: 'spuCode', width: '120px', type: 'text'},//spu编码
+        {
+          field: 'orderPriceSale',
+          title: self.$t('orderPriceSale'),
+          type: 'disabled',
+          flgUserSensitive: true,
+          digits: 2
+        },//采购单价
+        {field: 'orderAmount', title: self.$t('purchasePrice'), type: 'disabled', flgUserSensitive: true, digits: 2},//采购金额
+        {field: 'whName', type: 'disabled'},//仓库名称
+        {field: 'brandName', title: self.$t('skuBrand'), type: 'disabled'},//商品品牌
+        {field: 'nonStandardCode', type: 'disabled'},//非标号
+        {field: 'skuWeight', width: '120px', type: 'number', digits: 2, sum: true},//重量
+        {field: 'skuVolume', width: '120px', type: 'number', digits: 2, sum: true},//体积
+      ],
+      selectSourceOrderPageInfo: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      selectSourceOrderFormData: {
+        entryNo: null,//入库单号
+        orderNo: null,//采购单号
+        makingTime: null,//采购日期
+        supplierId: null,//供应商
+        supplierName: null,//供应商名称
+        contactName: null,//收货人
+        contactPhone: null,//收货电话
+        addressFull: null,//收货地址
+        skuCode: null,//商品编码
+        skuName: null,//商品名称
+        skuModel: null,//商品型号
+      },
+      //画面模式选项
+      tabsOptions: [
+        {label: self.$t('order-message'), name: 'name1'},
+        {label: self.$t('goods-message'), name: 'name2'},
+        {label: self.$t('file'), name: 'name5'},
+      ],
+      //画面模式选项角标
+      bottomList: ['1', '2', '3', '5'],
+      loading: false,
+      orderId: null,//订单id判断是采购订单是入口,还是采购退货是入口
+      formData: {
+        ascpId: null,//所属公司Id
+        sale1Id: null,//二级商户
+        sale2Id: null,//一级商户
+        cpId: null,//公司ID
+        saveAscpId: null,//所属公司Id
+        cpName: null,//所属公司
+        rejectId: null, //订单Id
+        rejectNo: null,
+        supplierId: null,//供应商Id
+        supplierName: null,//供应商名称
+        supplierCode: null,//供应商编码
+        makingTime: new Date,//退货日期
+        flgAutoIvt: null,//自动办理出库
+        contactName: null,//联系人
+        contactPhones: null,//联系电话
+        addressFull: null,//详细地址
+        remarks: null,
+        outTime: new Date,//出库日期
+        sumRejectQuantity: 0,//合计退货数量
+        sumRejectGoodsAmount: 0,//合计退货货物金额
+        sumRejectAmount: 0,//合计退货金额
+        salesChannel: null,//销售渠道
+        salesChannelCode: null,//销售渠道编码
+        orderId: null,//订单Id
+        orderNo: null,//订单单号
+        makingUser: self.$store.state.user.staffId,//制单人
+        orderOutRejectItemVOList: [],
+        files: [],
+        annexPaths: [],
+        outId: null,//出库单ID
+        outNo: null,//出库单号
+        erpOutNo: null,//ERP出库单号
+        entryId: null,//入库单ID
+        entryNo: null,//入库单号
+        editTime: null,
+        deliveryDate: null,//预计发货日期
+      },
+      orderType: null,
+      regionData: [],//客户区域
+      cityData: [],//客户区域
+      // 校验规则
+      ruleInline: {
+        //所属公司
+        ascpId: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //供应商
+        supplierId: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+      },
+      tableHeight: 420,
+      // 保存错误消息
+      errMessage: {},
+      detailColumns: [
+        {field: 'skuModel', type: 'disabled'},//商品型号
+        {field: 'skuName', type: 'disabled'},//商品名称
+        {field: 'skuCode', type: 'disabled'},//商品编码
+        //采购退货数量
+        {
+          field: 'rejectQuantity',
+          title: self.$t('purchaseReturnQuantity'),
+          type: 'disabled',
+          digits: 2,
+          sum: true,
+        },
+
+        {
+          field: 'outGoingQuantity',
+          title: self.$t('thisOutQuantity'),
+          type: 'number',
+          digits: 0,
+          //negative: () => true,
+          sum: true,
+          formula: {
+            orderAmount: ['outGoingQuantity*orderPriceSale', 'outGoingQuantity', 'orderPriceSale'],
+          },
+        }, //本次退货数量
+        {
+          field: 'orderPriceSale',
+          title: self.$t('orderPriceSale'),
+          type: 'disabled',
+          flgUserSensitive: true,
+          digits: 2,
+          sum: true
+        },//采购单价
+        {
+          field: 'orderAmount',
+          title: self.$t('purchasePrice'),
+          type: 'disabled',
+          flgUserSensitive: true,
+          digits: 2,
+          sum: true
+        },//采购金额
+        {field: 'whName', type: 'disabled'},//仓库名称
+        //库存量
+        {
+          field: 'ivtQty',
+          title: self.$t('ivtQty'),
+          type: 'disabled',
+          digits: 0,
+          sum: true,
+        },
+        //可售量
+        {
+          field: 'ivtUsableQty',
+          title: self.$t('usableQty'),
+          type: 'disabled',
+          digits: 0,
+          sum: true,
+        },
+        {field: 'nonStandardCode', type: 'disabled'},//非标号
+        {field: 'specsName', title: self.$t('skuSpecs'), type: 'disabled'},//商品规格
+        {field: 'brandName', title: self.$t('skuBrand'), type: 'disabled'},//商品品牌
+        {field: 'skuTypeName', type: 'disabled'},//型号分类
+        {field: 'skuWeight', width: '120px', type: 'disabled', digits: 2, sum: true},
+        {field: 'skuVolume', width: '120px', type: 'disabled', digits: 2, sum: true},
+        {field: 'remarks', type: 'text'},//备注
+      ],
+      detailAddColumns: [
+        {field: 'skuModel', type: 'disabled'},//商品型号
+        {field: 'skuName', type: 'disabled'},//商品名称
+        {field: 'skuCode', type: 'disabled'},//商品编码
+        {
+          field: 'rejectQuantity',
+          title: self.$t('thisReturnQuantity'),
+          type: 'number',
+          digits: 2,
+          negative: () => true,
+          sum: true,
+          formula: {
+            rejectAmount: ['rejectQuantity*orderPriceSale*nonStandardArea', 'rejectQuantity', 'orderPriceSale', 'nonStandardArea'],
+          },
+        }, //本次退货数量
+        {
+          field: 'rejectAmount',
+          title: self.$t('nowRejectAmount'),
+          type: 'disabled',
+          flgUserSensitive: true,
+          digits: 2,
+          negative: () => true, //负数处理
+          switchField: 'flgGift', // 开关控制的列
+          formula: {
+            rejectPrice: ['rejectAmount/rejectQuantity/nonStandardArea', 'rejectAmount', 'rejectQuantity', 'nonStandardArea'],
+            discountStandard: ['rejectAmount/rejectQuantity/priceStandard*100', 'rejectAmount', 'rejectQuantity', 'priceStandard'],
+            discountPromotion: ['rejectAmount/rejectQuantity/pricePromotion*100', 'rejectAmount', 'rejectQuantity', 'pricePromotion']
+          },
+        },//金额
+        {
+          field: 'canRejectQuantity',
+          title: self.$t('returnableQuantity'),
+          type: 'disabled',
+          digits: 2,
+          negative: () => true,
+          sum: true
+        },//可退数量
+        {
+          field: 'orderPriceSale',
+          title: self.$t('orderPriceSale'),
+          type: 'disabled',
+          flgUserSensitive: true,
+          digits: 2,
+          sum: true
+        },//采购单价
+        {
+          field: 'orderAmount',
+          title: self.$t('purchasePrice'),
+          type: 'disabled',
+          flgUserSensitive: true,
+          digits: 2,
+          sum: true
+        },//采购金额
+        {field: 'whName', type: 'disabled'},//仓库名称
+        {field: 'entryNo', title: self.$t('purchaseEntryNo'), type: 'disabled'},//采购入库单
+        {field: 'entryDate', title: self.$t('purchaseDate'), type: 'disabled'},//采购日期
+        {field: 'brandName', title: self.$t('skuBrand'), type: 'disabled'},//商品品牌
+        // {field: 'nonStandardCode', type: 'disabled'},//非标号
+        {field: 'skuWeight', width: '120px', type: 'disabled', digits: 2, sum: true},
+        {field: 'skuVolume', width: '120px', type: 'disabled', digits: 2, sum: true},
+        {field: 'remarks', type: 'text'},//备注
+      ],
+      //商品合计信息
+      goodsFootFormData: {
+        sumGoodsAmount: 0,
+        sumVolume: 0,
+        sumWeight: 0,
+      },
+      showOutTime: true,
+    }
+  },
+
+  methods: {
+    /**
+     * @desc   : 所属公司选择后事件
+     * @author : 付斌
+     * @date   : 2024-02-20 13:16
+     */
+    ascpIdOk(val) {
+    },
+    /**
+     * @desc   : 供应商选择后事件
+     * @author : 付斌
+     * @date   : 2024-02-20 13:16
+     */
+    supplierOk(val) {
+    },
+    /**
+     * @desc   : 表单值改变事件
+     * @author : 付斌
+     * @date   : 2024-02-20 13:18
+     */
+    changeValue(field, row, rowIndex) {
+    },
+    /**
+     * @desc   : 表单值改变事件
+     * @author : 付斌
+     * @date   : 2024-02-20 13:18
+     */
+    delValue(row, rowIndex) {
+    },
+    /**
+     * @desc   : 以销定采弹窗打开并查询数据
+     * @author : 付斌
+     * @date   : 2024-02-20 13:19
+     */
+    selectSourceOrder(modalOpenFlag) {
+      this.selectSourceOrderFlag = true
+    },
+    /**
+     * @desc   : 选择源单把选择商品确认带回方法
+     * @author : 付斌
+     * @date   : 2024-02-20 13:20
+     */
+    purchaseBasedOnSalesOk() {
+      this.selectSourceOrderFlag = false
+    },
+    /**
+     * @desc   :
+     * @author : 付斌关闭弹窗
+     * @date   : 2024-02-20 13:19
+     */
+    clearPurchaseBasedOnSales() {
+    },
+    /**
+     * @desc   : 根据总单查询明细
+     * @author : 付斌
+     * @date   : 2024-02-20 13:21
+     */
+    selectChangeTable(e) {
+    },
+    /**
+     * @desc   : 分页
+     * @author : 付斌
+     * @date   : 2024-02-20 13:21
+     */
+    selectSourceOrderPageSizeChange(pageInfo) {
+    },
+    /**
+     * @desc   : 关闭窗体
+     * @author : 付斌
+     * @date   : 2024-02-20 13:24
+     */
+    closeForm() {
+
+    },
+    /**
+     * @desc   : 提交事件
+     * @author : 付斌
+     * @date   : 2024-02-20 13:24
+     */
+    submitForm(flag) {
+
+    },
+  },
+  created() {
+    this.focusItem = 'supplierId';    // 给第一个组件赋值,可以在混入中自动去聚焦
+    this.primaryKey = 'purRejectId'  // 设置主键Id
+  },
+}
+</script>
+
+<style lang="less" scoped>
+.imageWrap {
+  width: 100%;
+  height: 90px;
+  border: 1px solid red;
+}
+
+.tab-class {
+  width: 100%;
+  height: 32px;
+  position: fixed;
+  z-index: 999;
+  background: #fff;
+}
+
+.Col {
+  margin-bottom: 3px;
+}
+
+//暗锚
+.hide-anchor {
+  position: relative;
+  top: -50px;
+  display: block;
+  height: 0;
+  overflow: hidden;
+}
+
+
+.form-content-class {
+  padding-left: 8px;
+  width: 98%
+}
+
+.search-button-class {
+  justify-content: center;
+  align-items: center;
+  display: flex;
+  height: 28px;
+  width: 24px;
+  cursor: pointer;
+  border-bottom: 1px solid rgb(220, 222, 226);
+  border-right: 1px solid rgb(220, 222, 226);
+  border-top: 1px solid rgb(220, 222, 226);
+}
+
+.close-class {
+  cursor: pointer;
+  width: 24px;
+  position: absolute;
+  top: 5px;
+  right: 15px;
+  align-items: center;
+  justify-content: center;
+  height: 24px;
+  color: #a0a5ac;
+  z-index: 99;
+}
+</style>

+ 18 - 0
src/view/pur/pur-reject/handle.vue

@@ -0,0 +1,18 @@
+<template>
+  <CommonForm type="handle" ></CommonForm>
+</template>
+
+<script>
+import CommonForm from "./form";
+
+export default {
+name: "purchase-return-handle",
+  components:{
+    CommonForm
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 509 - 5
src/view/pur/pur-reject/index.vue

@@ -1,13 +1,517 @@
+<!-- @desc:采购退货  @auth:付斌  @time:2024/02/20 15:15 -->
 <template>
+  <div class="main-div">
+    <BaseIndexButtonGroup id="BaseIndexButtonGroup">
+      <template #left>
+        <BaseIndexButton ref="search" name="search"></BaseIndexButton>
+        <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
+        <BaseIndexButton ref="outHandle" name="outHandle"></BaseIndexButton>
+        <BaseIndexButton ref="outBack" name="outBack"></BaseIndexButton>
+      </template>
+      <template #right>
+        <BaseIndexButton ref="add" name="add"></BaseIndexButton>
+      </template>
+    </BaseIndexButtonGroup>
 
+    <!--  查询条件区域  -->
+    <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
+      <SearchCond ref="searchCond" v-model="searchCond"
+                  @collapse-change="collapseChange" :setFlag="false"
+                  :searchContent="searchContent"
+                  @on-switch-change="changeShowItem"></SearchCond>
+    </div>
+    <DkSplit mode="vertical" v-model="split" :height="tableHeight">
+      <div slot="top" style="margin-left: 5px;">
+        <!--  表格部分  -->
+        <DkTabs v-model="tabsModel" :options="tabsOptions" @on-click="tabsClick"></DkTabs>
+        <!--TODO  :refreshSelect="false" 后续看是否需要去掉-->                 <!--导出权限-->
+        <DkTable :pageFlag="true" primaryKey="rejectId" :id="'table-'+$options.name" name="table"
+                 @current-change="selectChangeTable" :refreshSelect="false" :show-footer="true"
+                 :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/purchase_return/export/':''"
+                 :export-condition="exportCondition"
+                 sum-total-type="total"
+                 @pageChange="pageSizeChange" ref="table-select" :data="tableData"
+                 :height="this.tableHeight * split - 35">
+          <!--所属公司-->
+          <DkTableColumn field="cpName"></DkTableColumn>
+          <!--退货单号-->
+          <DkTableColumn field="rejectNo"></DkTableColumn>
+          <!--退货日期-->
+          <DkTableColumn field="makingTime" :dataType="$config.columnType.date"></DkTableColumn>
+          <!--供应商-->
+          <DkTableColumn field="supplierName"></DkTableColumn>
+          <!--退货状态-->
+          <DkTableColumn field="rejectStatusName" title="退货状态"></DkTableColumn>
+          <!--出库状态-->
+          <DkTableColumn field="outStatusString" :color-cards="['未出库','出库中','出库完成']"></DkTableColumn>
+          <!--出库日期-->
+          <DkTableColumn field="outDate"></DkTableColumn>
+          <!--退件收货人-->
+          <DkTableColumn field="contactName"></DkTableColumn>
+          <!--退件收货电话-->
+          <DkTableColumn field="contactPhones"></DkTableColumn>
+          <!--退件收货地址-->
+          <DkTableColumn field="addressFull"></DkTableColumn>
+          <!--退货数量-->
+          <DkTableColumn field="sumRejectQuantity"></DkTableColumn>
+          <!--退货金额-->
+          <DkTableColumn field="sumRejectAmount" v-if="visUserSensitive"></DkTableColumn>
+          <!--出库数量-->
+          <DkTableColumn field="outOutQuantity"></DkTableColumn>
+          <!--出库金额-->
+          <DkTableColumn field="outOutAmount" v-if="visUserSensitive"></DkTableColumn>
+          <!--制单人-->
+          <DkTableColumn field="makingUserPurName"></DkTableColumn>
+          <!--出库办理人-->
+          <DkTableColumn field="doneUserName"></DkTableColumn>
+          <!--推送状态-->
+          <DkTableColumn field="erpPushStatusString"></DkTableColumn>
+          <!--推送结果-->
+          <DkTableColumn field="erpPushResult"></DkTableColumn>
+          <!--备注-->
+          <DkTableColumn field="remarks"></DkTableColumn>
+        </DkTable>
+      </div>
+      <div slot="bottom">
+        <DkTabs v-model="detailModel" :options="detailOptions" @on-click="detailTabsClick"></DkTabs>
+        <!--订单明细-->
+        <div v-show="standardGoodsFlag">
+          <DkTable :pageFlag="false" :pageTotalFlag="false" primaryKey="itemId"
+                   :id="'table-'+$options.name" :show-footer="true"
+                   :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/purchase_return_item/export/'+rejectId:''"
+                   name="table" ref="detail-select" :data="tableDataDetail_goodsDetail"
+                   :height="this.tableHeight * (1-split)">
+            <DkTableColumn
+              v-for="(item, index) in tableDataTitle_goodsDetail"
+              v-if="!(item.UserSensitiveFlag && !visUserSensitive)"
+              :key="detailModel+index"
+              align="center"
+              :type="item.type"
+              :field="item.field"
+              :title="item.title"
+              :sum="item.sum"
+              :digits="item.digits"
+              :width="item.width"
+              :dataType="item.dataType"
+              :tree-node="item.treeNode"
+            >
+            </DkTableColumn>
+          </DkTable>
+        </div>
+        <!--条码明细-->
+        <div v-show="barcodeDetailsFlag">
+          <DkTable :pageFlag="false" :pageTotalFlag="false" primaryKey="itemId"
+                   :id="'table-'+$options.name" :show-footer="true"
+                   :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/purchase_return_item/export/'+rejectId:''"
+                   name="table" ref="detail-select" :data="tableDataDetail_barCodeDetail"
+                   :height="this.tableHeight * (1-split)">
+            <DkTableColumn
+              v-for="(item, index) in tableDataTitle_barCodeDetail"
+              :key="detailModel+index"
+              align="center"
+              :type="item.type"
+              :field="item.field"
+              :title="item.title"
+              :sum="item.sum"
+              :digits="item.digits"
+              :width="item.width"
+              :dataType="item.dataType"
+              :tree-node="item.treeNode"
+            >
+            </DkTableColumn>
+          </DkTable>
+        </div>
+        <!--附件-->
+        <div v-show="reviewResumeFlag">
+          <DkTable :pageFlag="false" :pageTotalFlag="false" :id="'table-'+$options.name"
+                   name="table" ref="file-select" :data="tableDataDetail_files" :height="this.tableHeight * (1-split)">
+            <DkTableColumn field="docType" min-width="150" width="150"></DkTableColumn>
+            <DkTableColumn field="name" min-width="300" width="300"></DkTableColumn>
+            <vxe-column field="createTime" min-width="150" width="150"></vxe-column>
+            <vxe-column :title="$t('picture')" class-name="img-column" width="100">
+              <template #default="{row}">
+                <img :src="$config.imgUrl + row.url" v-if="row.type == 'img' || row.type == 'image'"
+                     style="width: 100px; height: 100px; cursor: pointer;"
+                     @click="openFile(row)"/>
+              </template>
+            </vxe-column>
+            <vxe-column>
+              <template #default="{row}">
+                <DkButton @click="openFile(row)">
+                  <Icon type="md-download"/>
+                </DkButton>
+              </template>
+            </vxe-column>
+          </DkTable>
+        </div>
+      </div>
+    </DkSplit>
+  </div>
 </template>
 
 <script>
+
+import {indexMixin} from '@/mixins'
+
 export default {
-  name: "index"
-}
-</script>
+  name: 'purchase-return',
+  mixins: [indexMixin],
+  data() {
+    let self = this
+    return {
+      rejectStatusFlag: true,
+      //用户敏感信息隐藏
+      visUserSensitive: false,
+      standardGoodsFlag: true,
+      barcodeDetailsFlag: false,
+      reviewResumeFlag: false,
+      // 模式切换值
+      tabsModel: 'all',
+      totalTab: null,//存放总单tab切换到那个标签
+      tabsOptions: [
+        {label: self.$t('all'), name: 'all'}, //全部
+        {label: self.$t('inApproval'), name: 'inApproval'}, //审批中
+        {label: self.$t('returning'), name: 'returning'},//退货中
+        {label: self.$t('returned'), name: 'returned'},//已退货
+        {label: self.$t('noApproval'), name: 'noApproval'},//审拒绝
+      ],
+      //画面模式选项角标
+      bottomList: ['1', '2', '3', '4', '5', '6'],
+      //明细tab默认变量
+      tabsClickDetailVariable: null,
+      detailModel: 'goodsDetail',
+      detailOptions: [{label: self.$t('goodsDetail'), name: 'goodsDetail'}, //货物明细
+        {label: self.$t('barCodeDetail'), name: 'barCodeDetail'}, //条码明细
+        {label: self.$t('filesDetail'), name: 'filesDetail'}, //附件明细
+      ],
+      //总单导出条件
+      exportCondition: null,
+      tableData: [],
+      tableDataDetail_goodsDetail: [],  // 用于存放订单明细数据
+      tableDataDetail_barCodeDetail: [], // 用于条码明细数据
+      tableDataDetail_files: [],  // 用于存放订单附件
+      tableDataTitle_goodsDetail: [
+        //采购入库单号
+        {field: 'entryNo', title: self.$t('entryPurchaseNo')},
+        //采购订单号
+        {field: 'orderNo', title: self.$t('procureOrderNo1')},
+        //商品型号
+        {field: 'skuModel'},
+        //商品名称
+        {field: 'skuName'},
+        //唯一编码
+        {field: 'skuCode'},
+        //采购退货数量
+        {
+          field: 'rejectQuantity',
+          title: self.$t('purchaseReturnQuantity'),
+          type: 'text',
+          digits: 0,
+          sum: true
+        },
+        //采购单价
+        {
+          field: 'rejectPrice',
+          title: self.$t('orderPriceSale'),
+          digits: 0,
+          type: 'number',
+          sum: true,
+          UserSensitiveFlag: true
+        },
+        //采购金额
+        {
+          field: 'rejectAmount',
+          title: self.$t('purchasePrice'),
+          type: 'number',
+          digits: 2,
+          sum: true,
+          UserSensitiveFlag: true
+        },
+        //已出库数量
+        {
+          field: 'outGoingQuantity',
+          title: self.$t('outboundQuantity'),
+          type: 'number',
+          digits: 2,
+          sum: true
+        },
+        //未出库数量
+        {
+          field: 'outQuantity',
+          title: self.$t('undeliveredQuantity'),
+          type: 'number',
+          digits: 2,
+          sum: true
+        },
+        //单位
+        {field: 'unitName'},
+        //商品品牌
+        {field: 'brandName'},
+        //型号分类
+        {field: 'skuTypeName', title: self.$t('skuTypeBom')},
+        //仓库名称
+        {field: 'whName', title: self.$t('whName')},
+        //备注
+        {field: 'remarks'},
+      ],
+      tableDataTitle_barCodeDetail: [
+        //出库单号
+        {field: 'outNo'},
+        //商品型号
+        {field: 'skuModel'},
+        //商品名称
+        {field: 'skuName'},
+        //唯一编码
+        {field: 'skuCode'},
+        //商品条码
+        {field: 'skuBarcode'},
+        //箱码
+        {field: 'boxcode'},
+        //扫码日期
+        {field: 'opCreateTime'},
+        //操作员
+        {field: 'opCreateUserName'},
+      ],
+      rejectId: 0,//查询明细需要的总单Id
+      //单据类型
+      docCode: self.$config.docCode.purchaseReturn,
+      // 查询条件
+      searchCond: {},
+      searchContent: [
+        {
+          itemCode: '退货单号-文本',
+          itemName: 'rejectNo',
+          valueFormat: {code: 'rejectNo'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '采购订单号-文本',
+          itemName: 'procureOrderNo1',
+          valueFormat: {code: 'orderNo'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '供应商',
+          valueFormat: {code: 'supplierId'},
+          valueKind: 'S-SEARCH',
+          magnifierType: self.$config.MagnifierType.supplier,
+        },
+        {
+          itemCode: '收货人-文本',
+          itemName: 'consignee',
+          valueFormat: {code: 'contactName'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '收货地址-文本',
+          itemName: 'takeOverAddress',
+          valueFormat: {code: 'addressFull'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '所属公司',
+          valueFormat: {code: 'asCpIds'},
+          valueKind: 'M-SEARCH',
+          magnifierType: self.$config.MagnifierType.company,
+        },
+        {
+          itemCode: '商品编码-文本',
+          itemName: 'goodCode',
+          valueFormat: {code: 'skuCode'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '商品名称-文本',
+          itemName: 'skuName',
+          valueFormat: {code: 'skuName'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '商品型号-文本',
+          itemName: 'skuModel',
+          valueFormat: {code: 'skuModel'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '出库状态-下拉',
+          itemName: 'outStatus',
+          valueFormat: {
+            code: 'outStatusList',
+            data: [
+              {valueKey: '出库状态-未收', flgValid: '未出库'},
+              {valueKey: '出库状态-部分', flgValid: '出库中'},
+              {valueKey: '出库状态-完成', flgValid: '出库完成'}],
+            valueKey: 'valueKey',
+            labelKey: 'flgValid',
+            default: []
+          },
+          valueKind: 'M-CHOICE'
+        },
+        {
+          itemCode: '制单时间-时间',
+          itemName: 'rejectDate',
+          valueFormat: {
+            code: 'makingTime',
+            default: [new Date().addMonths(-1).format('yyyy-MM-dd'), new Date().format('yyyy-MM-dd')]
+          },
+          valueKind: 'DATE_RANGE'
+        },
+        {
+          itemCode: '来源单号-文本',
+          itemName: 'entryPurchaseNo',
+          valueFormat: {code: 'refundSourceNo'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '不查冲正单据',
+          itemName: '不查冲正单据',
+          valueFormat: {code: 'rejectStatusFlag', default: true},
+          valueKind: 'SWITCH'
+        },
+      ],
+      totalRowIndex: 0, // 总单的当前行序号
+    }
+  },
+
+  methods: {
+    /**
+     * @desc   : 新建
+     * @author : 付斌
+     * @date   : 2024-02-19 9:59
+     */
+    add() {
+      this.$router.push('/pur/purReject/add')
+    },
+    /**
+     * @desc   : 不查冲正单据
+     * @author : 付斌
+     * @date   : 2024/02/20 15:56
+     */
+    changeShowItem({code, e}) {
+      if ('rejectStatusFlag' === code) {
+        this.rejectStatusFlag = e;
+        // 查询数据
+        this.getData();
+      }
+    },
+    /**
+     * @desc   : 打开附件
+     * @author : 付斌
+     * @date   : 2024/02/20 19:56
+     */
+    openFile(row) {
+      window.open(this.$config.imgUrl + row.url)
+    },
+    /**
+     * @desc   : 一览查询
+     * @author : 付斌
+     * @date   : 2024/02/20 16:05
+     */
+    initData(currentPage, StringOrderTab) {
+
+    },
+    /**
+     * @desc   : 调用api方法进行查询
+     * @author : 付斌
+     * @date   : 2024/02/20 16:10
+     */
+    getData(StringOrderTab) {
+
+    },
+    /**
+     * @desc   : 根据明细tabs查询订单明细
+     * @author : 付斌
+     * @date   : 2024-02-20 11:25
+     */
+    initDetailData(detailTabString, type) {
+
+    },
+    /**
+     * @desc   : 出库撤销
+     * @author : 付斌
+     * @date   : 2024-02-20 11:25
+     */
+    outBack() {
+
+    },
+    /***************************列表及其他事件************************************/
+
+    /**
+     * @desc   : 分页
+     * @author : 付斌
+     * @date   : 2022/3/17 15:01
+     */
+    pageSizeChange(pageInfo) {
+    },
+    /**
+     * @desc   : 总单行事件选择
+     * @author : 付斌
+     * @date   : 2024-02-20 11:26
+     */
+    selectChangeTable(e) {
 
-<style scoped>
+    },
+    /**
+     * @desc   : 总单tab切换
+     * @author : 付斌
+     * @date   : 2024-02-20 11:26
+     */
+    tabsClick(val) {
 
-</style>
+    },
+    /**
+     * @desc   : 点击Tab进行切换
+     * @author : 付斌
+     * @date   : 2024-02-19 11:33
+     */
+    detailTabsClick(val) {
+
+    },
+    /***************************设定参数函数************************************/
+
+    /**
+     * @desc   : 查询参数设定
+     * @author : 付斌
+     * @date   : 2024/02/20 14:29
+     */
+    setSearchParams(StringOrderTab) {
+
+    },
+    /**
+     *   @desc   : 页面初始化所需下拉数据
+     *   @date   : 2022/5/25 15:53
+     *   @author : 付斌
+     */
+    initSelectData() {
+
+    },
+    /**
+     *   @desc   : 查询供应商
+     *   @date   : 2023/9/1 9:57
+     *   @author : 付斌
+     */
+    getSupplier() {
+
+    },
+    /**
+     *   @desc   : 查询所属公司
+     *   @date   : 2023/9/1 9:59
+     *   @author : 付斌
+     */
+    getCpId() {
+
+    },
+    /***************************created调用数据接口函数************************************/
+
+  },
+  /**
+   * @desc   : 在实例创建完成后被立即同步调用
+   * @author : 付斌
+   * @date   : 2024/02/20 10:32
+   */
+  created() {
+    this.primaryKey = 'purRejectId'  // 设置主键Id
+    this.routeObjName = 'purReject'  // 设置路由名称
+  },
+}
+</script>

+ 1710 - 2
src/view/sale/order/form.vue

@@ -1,13 +1,1721 @@
+<!-- @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" style="width:100%" v-if="true">
+          <!--订单单号-->
+          <DkFormItem prop="orderNo">
+            <InputPop ref="orderNo" v-model="formData.orderNo" :readonly="true"/>
+          </DkFormItem>
+          <!--合同号-->
+          <DkFormItem prop="contractNo" :required="orderContractNoFlg">
+            <InputPop ref="contractNo" v-model="formData.contractNo"
+                      :readonly="checkColumnIsEdit('contractNo')"/>
+          </DkFormItem>
+          <!--客户电话-->
+          <DkFormItem prop="customerPhone" :required="true">
+            <SelectMagnifier v-model="formData.customerPhone" searchType="S"
+                             :telephone="true"
+                             :other-condition="{flgOrderForm: true}"
+                             primary-key="customerId"
+                             :input-read-only="customerPhoneReadOnly"
+                             ref="customerPhone" :select-flag=false
+                             :type="this.$config.MagnifierType.customerOrder"
+                             :disabled="checkColumnIsEdit('customerPhone')"
+                             @on-input-blur="selectCustomer"
+                             @ok="selectCustomer"
+                             @modelOk="customerPhoneChange"
+            >
+            </SelectMagnifier>
+          </DkFormItem>
+          <!--客户名称-->
+          <DkFormItem prop="customerName" :required="true">
+            <InputPop ref="customerName" :readonly="checkColumnIsEdit('customerName')"
+                      v-model="formData.customerName"/>
+          </DkFormItem>
+          <!--客户区域-->
+          <DkFormItem prop="customerDistrict"
+                      :required="true">
+            <!-- 高德 -->
+            <!--                <RegionsChooseAmap v-model="regionData" :options="cityData" :default-value="formData.addressName"-->
+            <!--                                   :readonly="checkColumnIsEdit('addressName')" ref="customerDistrict"-->
+            <!--                                   @on-choose="chooseAddress"></RegionsChooseAmap>-->
+          </DkFormItem>
+          <!--门牌号-->
+          <DkFormItem prop="addressNo" :required="true">
+            <InputPop ref="addressNo" :readonly="checkColumnIsEdit('addressNo')"
+                      v-model="formData.addressNo"
+                      @input="setAddressFull"/>
+          </DkFormItem>
+          <!--联系人-->
+          <DkFormItem prop="contactName">
+            <InputPop ref="contactName" :readonly="checkColumnIsEdit('contactName')"
+                      v-model="formData.contactName"/>
+          </DkFormItem>
+          <!--联系电话-->
+          <DkFormItem prop="contactPhones">
+            <!--                    <SelectInputPop ref="contactPhones" :disabled="readonlyFlag" v-model="formData.contactPhones"/>-->
+            <InputPop :telephone="true" ref="contactPhones" :readonly="checkColumnIsEdit('contactPhones')"
+                      v-model="formData.contactPhones"/>
+          </DkFormItem>
+          <!--详细地址-->
+          <!-- :readonly="true" -->
+          <DkFormItem prop="addressFull" :required="true">
+            <InputPop ref="addressFull" v-model="formData.addressFull"/>
+          </DkFormItem>
+          <!--业务员-->
+          <DkFormItem prop="staffId" :label="$t('staffId')" :required="true">
+            <SelectMagnifier v-model="formData.staffId" :display-text="formData.staffName"
+                             :type="this.$config.MagnifierType.staff"
+                             @ok="staffOk"
+                             :initSearchFlag="true"
+                             :readonly="checkColumnIsEdit('staffId')"
+                             :multiple="false"/>
+          </DkFormItem>
+          <!--业务部门-->
+          <DkFormItem prop="orgId" :label="$t('orgId')" :required="true">
+            <SelectMagnifier v-model="formData.orgId" :display-text="formData.orgName"
+                             :type="this.$config.MagnifierType.org"
+                             @ok="orgOk"
+                             :initSearchFlag="true"
+                             :readonly="checkColumnIsEdit('orgId')"
+                             :multiple="false"/>
+          </DkFormItem>
+          <!--小区档案-->
+          <DkFormItem prop="estateId">
+            <SelectMagnifier v-model="formData.estateId" :display-text="formData.estateName"
+                             :type="this.$config.MagnifierType.estate"
+                             :disabled="checkColumnIsEdit('estateId')"
+                             searchType="S"/>
+          </DkFormItem>
+          <!--客户来源-->
+          <DkFormItem prop="customerFrom" :required="true">
+            <SelectPop v-model="formData.customerFrom" ref="customerFrom" :multiple="false"
+                       :options="customerFromList"
+                       :disabled="checkColumnIsEdit('customerFrom')"
+                       labelKey="fromName"
+                       valueKey=fromId>
+            </SelectPop>
+          </DkFormItem>
+          <!--装修户型数-->
+          <DkFormItem prop="toiletCount" :required="true">
+            <SelectPop v-model="formData.toiletCount" :multiple="false" :options="tolietsList"
+                       :disabled="checkColumnIsEdit('toiletCount')" ref="toiletCount"
+                       @on-select-label="selectTolietCount" :labelInValue="true"
+                       labelKey="toiletsName"
+                       valueKey=toiletsId>
+            </SelectPop>
+          </DkFormItem>
+          <!--销售渠道-->
+          <DkFormItem prop="saleChannel" :required="true">
+            <!-- <InputPop ref="saleChannel" :readonly=true v-model="formData.saleChannel"/> -->
+            <SelectPop v-model="formData.saleChannel" ref="channel"
+                       :options="channelList"
+                       :multiple="false"
+                       labelKey="channelName"
+                       valueKey="channelId">
+            </SelectPop>
+          </DkFormItem>
+          <!--装修类型-->
+          <DkFormItem prop="fitupType" :required="true">
+            <SelectPop v-model="formData.fitupType" ref="fitupType" :multiple="false"
+                       :options="customerFitupType"
+                       :disabled="checkColumnIsEdit('fitupType')"
+                       labelKey="dataValue"
+                       valueKey="dataId"/>
+          </DkFormItem>
+          <!--房屋类型-->
+          <DkFormItem prop="houseType" :required="orderHouseTypeFlg">
+            <SelectPop v-model="formData.houseType" ref="houseType" :multiple="false" :options="houseType"
+                       :disabled="checkColumnIsEdit('houseType')"
+                       labelKey="dataValue"
+                       valueKey=dataId>
+            </SelectPop>
+          </DkFormItem>
+          <!--装修风格-->
+          <DkFormItem prop="fitupStyle" :required="orderFitupStyleFlg">
+            <SelectPop v-model="formData.fitupStyle" ref="fitupStyle" :multiple="false"
+                       :options="customerfitupStyle"
+                       :disabled="checkColumnIsEdit('fitupStyle')"
+                       labelKey="dataValue"
+                       valueKey="dataId"/>
+          </DkFormItem>
+          <!--年龄构成-->
+          <DkFormItem prop="ageComposition"
+                      :required="orderAgeCompositionFlg">
+            <SelectPop v-model="formData.ageComposition" ref="ageComposition" :multiple="false"
+                       :options="customerAgeComposition"
+                       :disabled="checkColumnIsEdit('ageComposition')"
+                       labelKey="dataValue"
+                       valueKey="dataId"/>
+          </DkFormItem>
+          <!--决策者-->
+          <DkFormItem prop="decisionMaker"
+                      :required="orderDecisionMakerFlg">
+            <SelectPop v-model="formData.decisionMaker" ref="decisionMaker" :multiple="false"
+                       :options="customerDecisionMaker"
+                       :disabled="checkColumnIsEdit('decisionMaker')"
+                       labelKey="dataValue"
+                       valueKey="dataId"/>
+          </DkFormItem>
+          <!--制单时间-->
+          <DkFormItem prop="makingTime" :required="true">
+            <DatePickerPop v-model="formData.makingTime"
+                           :placeholder="$t('inputWords',{'search-name':$t('makingTime')})"
+                           type="date" :short-cut-flag="true"/>
+          </DkFormItem>
+          <!--送货时间-->
+          <DkFormItem prop="deliveryTime" :required="false">
+            <DatePickerPop v-model="formData.deliveryTime"
+                           :placeholder="$t('inputWords',{'search-name':$t('deliveryTime')})"
+                           :readonly="checkColumnIsEdit('deliveryTime')"
+                           type="date" :short-cut-flag="true"/>
+          </DkFormItem>
+          <!--交货方式-->
+          <DkFormItem prop="deliveryType">
+            <SelectPop v-model="formData.deliveryType" ref="deliveryType" :multiple="false"
+                       :options="deliveryTypeList"
+                       labelKey="dataValue"
+                       valueKey="dataId"/>
+          </DkFormItem>
+          <!--家装业务员-->
+          <DkFormItem prop="hdStaffCode">
+            <SelectMagnifier v-model="formData.hdStaffCode" :display-text="formData.hdStaffName"
+                             :type="this.$config.MagnifierType.hdHomeStaff"
+                             :other-condition="{cpId:$store.state.user.cpId,orgId:$store.state.user.orgId}"
+                             :disabled="checkColumnIsEdit('hdStaffCode')"
+                             @ok="hdStaffOK"
+                             searchType="M"/>
+          </DkFormItem>
+          <!--家装公司-->
+          <DkFormItem prop="dcId">
+            <SelectMagnifier v-model="formData.dcId" :display-text="formData.dcName"
+                             :type="this.$config.MagnifierType.decorationCompany"
+                             :disabled="checkColumnIsEdit('dcId')"
+                             searchType="S"/>
+          </DkFormItem>
+          <!--家装设计师-->
+          <DkFormItem prop="hdId">
+            <SelectMagnifier v-model="formData.hdId" :display-text="formData.hdName"
+                             :type="this.$config.MagnifierType.homeDesigner"
+                             :disabled="checkColumnIsEdit('hdId')"
+                             searchType="S"/>
+          </DkFormItem>
+          <!-- 设计师-->
+          <DkFormItem prop="designUser">
+            <SelectMagnifier v-model="formData.designUser" :display-text="formData.designUserName"
+                             searchType="S" :other-condition="{jobIds: [-102]}"
+                             :init-search-flag="true"
+                             :type="this.$config.MagnifierType.user"></SelectMagnifier>
+          </DkFormItem>
+          <!--备注-->
+          <DkFormItem prop="remarks">
+            <InputPop ref="remarks" v-model="formData.remarks" :readonly="checkColumnIsEdit('remarks')"
+                      maxlength=500 textareaFlag/>
+          </DkFormItem>
+          <!--审批原因-->
+          <DkFormItem prop="apsReason">
+            <InputPop ref="apsReason" v-model="formData.apsReason" :readonly="true"/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <!--商品信息-->
+      <DkPanel prop="goodsInformation">
+        <div id="search-cond-div-goods-info" ref="search-cond-div-goods-info" slot="content">
+          <EditTreeTable ref="goodsTable" :data="formData.goodsList" showFooter exchange-field="replaceableSku"
+                         major-field="itemId"
+                         combined-field="promotionId"
+                         :new-row-flag="!(!this.formData.orgId)"
+                         :readonly="checkColumnIsEdit('goodsTable')"
+                         :amount-name="this.type == this.$config.formMode.add?'itemAmount':'tItemAmount'"
+                         :columns="(this.type == this.$config.formMode.add
+                                    || this.type == this.$config.formMode.approval)?goodsColumns:goodsColumnsEdit"
+                         :orgId="this.formData.orgId"
+                         :customerId="this.formData.customerId"
+                         :saleChannelCode="this.formData.saleChannelCode"
+                         :defWhId="this.defWhId"
+                         controlId="skuId"
+                         @on-choose="getTotals"
+                         @changeValue="changeValue"
+                         :selectDataFlag="type == $config.formMode.approval?false:true"
+          ></EditTreeTable>
+          <div>
+            <DkForm ref="goodsFootFormData" v-model="goodsFootFormData" :labelMaxWords="5" name="dk-form"
+                    class="form-content-class">
+              <!--货物金额-->
+              <DkFormItem prop="sumGoodsAmount">
+                <InputNumberPop ref="sumGoodsAmount" v-model="goodsFootFormData.sumGoodsAmount" :clearable="false"
+                                @on-blur="(val)=>changeDiscountPromotion(val, false)" :digits="2"
+                                :readonly="(type=='edit' && orderType!=$config.orderType.quote) || (type==$config.formMode.approval) || (type=='add' && $refs['goodsTable'] && $refs['goodsTable'].getTableDataFilter().length ==0) ||disabledFlag"/>
+              </DkFormItem>
+              <!--标价总额-->
+              <DkFormItem prop="sumStandard">
+                <InputNumberPop ref="sumStandard" v-model="goodsFootFormData.sumStandard" :digits="2"
+                                :readonly="true"/>
+              </DkFormItem>
+              <!--标价折扣-->
+              <DkFormItem prop="discountStandard">
+                <InputNumberPop ref="discountStandard" v-model="goodsFootFormData.discountStandard" :digits="2"
+                                :readonly="true" unit="%"/>
+              </DkFormItem>
+              <!--标准售价-->
+              <DkFormItem prop="sumPromotion">
+                <InputNumberPop ref="sumPromotion" v-model="goodsFootFormData.sumPromotion"
+                                :digits="2"
+                                :readonly="true"/>
+              </DkFormItem>
+              <!--标准价折扣-->
+              <DkFormItem prop="discountPromotion">
+                <InputNumberPop ref="discountPromotion" v-model="goodsFootFormData.discountPromotion" :digits="2"
+                                @on-change="(val)=>changeDiscountPromotion(val, true)" unit="%" :clearable="false"
+                                :readonly="(type=='edit' && orderType!=$config.orderType.quote) || (type==$config.formMode.approval) || (type=='add' && $refs['goodsTable'] && $refs['goodsTable'].getTableDataFilter().length ==0) || disabledFlag"/>
+              </DkFormItem>
+              <!--总重量-->
+              <DkFormItem prop="sumWeight">
+                <InputNumberPop ref="sumWeight" v-model="goodsFootFormData.sumWeight" :digits="2"
+                                :readonly="true" unit="KG"/>
+              </DkFormItem>
+              <!--总体积-->
+              <DkFormItem prop="sumVolume">
+                <InputNumberPop ref="sumVolume" v-model="goodsFootFormData.sumVolume" :digits="2"
+                                :readonly="true" unit="m³"/>
+              </DkFormItem>
+            </DkForm>
+          </div>
+        </div>
+      </DkPanel>
+      <!--客户收款-->
+      <DkPanel prop="customerAccount">
+        <DkForm slot="content" ref="feeFormData" v-model="feeFormData" name="dk-form"
+                class="form-content-class">
+          <!--费用金额-->
+          <DkFormItem prop="sumFeeAmount">
+            <InputNumberPop size="small" v-model="feeFormData.sumFeeAmount" ref="sumFeeAmount" :digits="2"
+                            @on-change="handleFeeChange"
+                            :readonly="checkColumnIsEdit('sumFeeAmount')"></InputNumberPop>
+          </DkFormItem>
+          <!--合计金额-->
+          <DkFormItem prop="sumAmount">
+            <InputNumberPop ref="sumAmount" v-model="feeFormData.sumAmount" :readonly=true :digits="2"/>
+          </DkFormItem>
+          <!--客户收款-->
+          <DkFormItem prop="sumReceiptAmount">
+            <ModalReceipt :data="receiptList" :total-amount="feeFormData.sumAmount"
+                          :usable-prestore="this.feeFormData.usablePrestore"
+                          :height="tableHeight - 25"
+                          :annex-paths="this.feeFormData.annexPaths"
+                          :remarks="this.feeFormData.remarks"
+                          ref="sumReceiptAmount"
+                          :readonly="checkColumnIsEdit('sumReceiptAmount')"
+                          @on-choose="chooseReceipt"></ModalReceipt>
+          </DkFormItem>
+          <!--剩余应收-->
+          <DkFormItem prop="receivable">
+            <InputNumberPop ref="receivable" v-model="feeFormData.receivable" :digits="2"
+                            :readonly="true"/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <!--附件-->
+      <DkPanel prop="files">
+        <div id="search-cond-div-files-info" ref="search-cond-div-files-info"
+             slot="content">
+          <DkPicWall v-model="formData.annexPaths" :disabled="this.allCanNoEdit?true:false"
+                     folder="t_order/annex_paths" :accept="$config.uploadFileConfig.acceptPicType"
+                     :format="['jpg','jpeg','png']"></DkPicWall>
+        </div>
+      </DkPanel>
+    </DkCollapse>
+    <!--      下部分按钮区域-->
+    <DkSaveButton v-if="this.type != this.$config.formMode.approval" ref="saveButton" :disabled="allCanNoEdit"
+                  :showQuotation=true :loading="loading"
+                  @save="submitForm(true)"
+                  @close="closeForm">
+      <DkButton ref="saveQuotation" type="primary"
+                v-if="type == $config.formMode.edit && formData.orderStatus === this.$config.orderStatus.quote "
+                @click="submitForm(false)" style="margin-right: 10px;" :loading="loading">{{ $t('saveQuotation') }}
+      </DkButton>
+    </DkSaveButton>
+  </div>
 </template>
 
 <script>
+import {formMixin} from '@/mixins/form'
+
 export default {
-  name: "index"
+  components: {},
+  mixins: [formMixin],
+  data() {
+    let self = this
+    return {
+      ruleFlag: false,
+      // 装修风格
+      orderFitupStyleFlg: null,
+      // 年龄构成
+      orderAgeCompositionFlg: null,
+      // 决策者
+      orderDecisionMakerFlg: null,
+      // 房屋类型
+      orderHouseTypeFlg: null,
+      // 合同号
+      orderContractNoFlg: null,
+      //新增省市区
+      addressArea: [],
+      //画面模式选项
+      tabsOptions: [
+        {label: self.$t('order-message'), name: 'name1'},
+        {label: self.$t('goods-message'), name: 'name2'},
+        {label: self.$t('customer-account'), name: 'name3'},
+        {label: self.$t('file'), name: 'name5'},
+      ],
+      //画面模式选项角标
+      bottomList: ['1', '2', '3', '5'],
+      setCustomerFlag: false,  // 是否是选择客户设置以及编辑时设置
+      loading: false,
+      //控制客户是否可以输入
+      readonlyFlag: true,
+      changeOrgFlag: false,
+      //费用的列
+      feeItemColumns: [
+        {field: 'itemName', type: 'disabled', title: self.$t('costItemName'), width: 'auto'},
+        {field: 'itemAmount', type: 'number', digits: 2, sum: true},
+      ],
+      //一直可以编辑的列(客户名称(暂时不让改)、客户来源、装修户型数、装修类型、房屋类型、装修风格、年龄构成、决策者 客户送货信息:客户地址、合同号、联系人、联系电话、小区档案 送货时间、备注、附件)
+      alwaysEditColumns: ['remarks', 'designRemarks', 'customerFrom', 'toiletCount', 'fitupType', 'houseType', 'fitupStyle', 'ageComposition',
+        'decisionMaker', 'addressName', 'addressNo', 'contractNo', 'deliveryTime', 'estateId', 'contactName', 'contactPhones'],
+      customerColumns: ['customerName', 'addressNo', 'addressGcj02', 'contactName', 'contactPhones', 'addressName'],
+      allCanEdit: true,  //是否可以进行大编辑
+      allCanNoEdit: false, //是否所有的都不允许编辑
+      customerPhoneReadOnly: false,//电话是否可以只读
+      fristCustomerId: null,//记录第一次选的客户
+      // 画面表单数据
+      formData: {
+        ascpId: null,//所属公司Id
+        sale1Id: null,//二级商户
+        sale2Id: null,//一级商户
+        cpId: null,//公司ID
+        erpPushStatus: null,
+        editTime: null,//编辑的时间戳
+        orderId: 0, //订单Id
+        orderNo: null,
+        orderStatus: null,//订单状态
+        docCode: null,//单据类型
+        contractNo: null,//合同号
+        customerId: null,//客户Id
+        customerName: null,
+        customerPhone: null,
+        qvExternalUserid: null,
+        noTelephone: false,
+        contactName: null,
+        contactPhones: null,
+        addressArea: {},//行政区
+        customerDistrict: {},//记录选择的客户区域
+        addressName: null,//小区档案
+        addressGcj02: null,//地址坐标
+        addressNo: null,//门牌号
+        addressFull: null,//详细地址
+        staffId: null,
+        staffName: null,
+        staffCode: null,
+        staffNames: null,
+        staffList: [],//存放从业务员id和分配百分比
+        orgId: null,
+        defaultOrgName: null,
+        orgName: null,
+        orgCode: null,
+        erpOrgCode: null,
+        orgNames: null,
+        orgList: [],//存放从业务部门id和分配百分比
+        channelId: null, //销售渠道
+        toiletCount: null,//装修户型数
+        toiletsName: null,//装修户型数名称
+        toiletsNum: null,//装修户型数个数
+        customerFrom: null,//客户来源
+        houseType: null,//房屋类型
+        fitupType: null,//装修类型
+        fitupStyle: null,//装修风格
+        ageComposition: null, //年龄构成
+        decisionMaker: null,//决策者
+        deliveryTime: new Date().addDays(1).format(),//送货时间
+        makingTime: new Date().format(),//制单日期
+        estateId: null,//小区档案
+        designStatusFlag: false,//设计状态标识
+        remarks: null,
+        goodsList: [],
+        feeFormData: {},
+        files: [],
+        feeList: [], //费用金额
+        sumFeeAmount: 0,//累计费用金额
+        receiptList: [], //定金金额
+        // 交货方式
+        deliveryType: null,
+        remarksInside: null,
+        // 附件
+        annexPaths: [],
+        designUser: null,
+        designUserName: null,
+        designRemarks: null,
+        apvResult: null,
+        erpHdId: null,
+        hdList: [],//存放主从家装设计师
+        dcId: null,
+        dcName: null,
+        hdId: null,
+        hdName: null,
+        hdStaffCode: null,
+        hdStaffName: null,
+        erpHomeStaffs: [],//家装业务员
+        saleChannel: null,//销售渠道
+        saleChannelCode: null,//销售渠道编码
+        saleChannelName: null,// 销售渠道名称
+        apsReason: null,//审批原因
+        // erpOnlyCode: null,//商户ERP系统经销商编码
+        // flgToErp: null,//是否同步erp系统
+        // sale2OpeMode: null,//分销运营模式
+        //makingUserPur: null,//制单人(采购订单)
+      },
+      // erpOnlyCode: null,//商户ERP系统经销商编码
+      // flgToErp: null,//是否同步erp系统
+      // sale2OpeMode: null,//分销运营模式
+      orderType: null,
+      estateData: [],//小区档案数据源
+      regionData: [],
+      cityData: [],
+      // 校验规则
+      ruleInline: {
+        docCode: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //客户电话
+        customerPhone: [
+          {required: true, trigger: 'none'},
+          {
+            required: true,
+            trigger: 'none',
+            max: 11,
+            min: 11,
+            message: self.$t('W_071', {'param': self.$t('customerPhone')})
+          },
+        ],
+        customerName: [
+          {required: true, trigger: 'none'}
+        ],
+        // //小区档案
+        // addressName: [
+        //   {required: true, trigger: 'none'}
+        // ],
+        // 客户区域
+        customerDistrict: [
+          {required: true, trigger: 'none', type: 'object'}
+        ],
+        //门牌号
+        addressNo: [
+          {required: true, trigger: 'none'}
+        ],
+        // 联系电话
+        contactPhones: [
+          {
+            required: false,
+            trigger: 'none',
+            max: 11,
+            min: 11,
+            message: self.$t('W_071', {'param': self.$t('contactPhones')})
+          },
+        ],
+        //客户地址
+        addressFull: [
+          {required: true, trigger: 'none'}
+        ],
+        staffId: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        orgId: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        // orgList: [
+        //   {required: true, trigger: 'none', type: 'array'}
+        // ],
+        //客户来源
+        customerFrom: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //设计备注
+        designRemarks: [
+          {required: true, trigger: 'none',}
+        ],
+        //装修户型数
+        toiletCount: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //装修类型
+        fitupType: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //装修风格
+        fitupStyle: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //年龄构成
+        ageComposition: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //决策者
+        decisionMaker: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        //合同号
+        contractNo: [
+          {required: true, trigger: 'none'}
+        ],
+        //房屋类型
+        houseType: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        // //deliveryTime
+        // 送货时间: [
+        //   {required: true, trigger: 'none'}
+        // ],
+      },
+      channelList: [],
+      customerFromList: [],//客户来源
+      tolietsList: [],//装修户型数
+      //装修风格
+      customerfitupStyle: [],
+      //装修类型
+      customerFitupType: [],
+      //年龄构成
+      customerAgeComposition: [],
+      //决策者
+      customerDecisionMaker: [],
+      //房屋类型
+      houseType: [],
+      //交货方式list
+      deliveryTypeList: [],
+      //监听上一次所选的用户
+      userFormData: {},
+      tableHeight: 300,
+      // 保存错误消息
+      errMessage: {},
+      goodsColumns: [
+        {
+          field: 'skuModel',
+          controlId: 'skuId',
+          treeNode: true,
+          width: 200,
+          type: 'tableSelect',
+          fixed: 'left',
+          promotionType: true,
+          dataType: self.$config.tableSelectType.goods,
+          tip: self.$t('W_117'),
+          fieldUpdate: [
+            {updateField: 'skuCode', valueFiled: 'skuCode'},
+            {updateField: 'skuModel', valueFiled: 'skuModel'},
+            {updateField: 'itemPrice', valueFiled: 'itemPrice'},
+            {updateField: 'itemQuantity', valueFiled: 'itemQuantity', defaultValue: 1},
+            {updateField: 'skuId', valueFiled: 'skuId'},
+            {updateField: 'skuName', valueFiled: 'skuName'},
+            {updateField: 'spuId', valueFiled: 'spuId'},
+            {updateField: 'spuCode', valueFiled: 'spuCode'},
+            {updateField: 'skuSpecs', valueFiled: 'skuSpecs'},//商品规格
+            {updateField: 'skuUnit', valueFiled: 'skuUnit'},//计量单位
+            {updateField: 'flgEstimate', valueFiled: 'flgEstimate'},//计量标识
+            {updateField: 'salesMode', valueFiled: 'salesMode'},//流通方式
+            {updateField: 'goodsCategoryName', valueFiled: 'goodsCategoryName'},//商品种类
+            {updateField: 'goodsVarietyName', valueFiled: 'goodsCategoryName'},//商品品种
+            {updateField: 'skuSeries', valueFiled: 'skuSeries'},//商品系列
+            {updateField: 'skuBrand', valueFiled: 'skuBrand'},//商品品牌
+            {updateField: 'skuLength', valueFiled: 'skuLength'},
+            {updateField: 'skuWidth', valueFiled: 'skuWidth'},
+            {updateField: 'skuHeight', valueFiled: 'skuHeight'},
+            {updateField: 'skuVolume', valueFiled: 'skuVolume'},
+            {updateField: 'skuWeight', valueFiled: 'skuWeight'},
+            {updateField: 'skuArea', valueFiled: 'skuArea'},
+            {updateField: 'skuType', valueFiled: 'skuType'},
+            {updateField: 'standardId', valueFiled: 'standardId'},
+            {updateField: 'standardItemId', valueFiled: 'standardItemId'},
+            {updateField: 'priceStandard', valueFiled: 'priceStandard'},
+            {updateField: 'promotionId', valueFiled: 'promotionId'},
+            {updateField: 'promotionItemId', valueFiled: 'promotionItemId'},
+            {updateField: 'pricePromotion', valueFiled: 'pricePromotion'},
+            {updateField: 'priceSale', valueFiled: 'priceSale'},
+            {updateField: 'promotionTypeName', valueFiled: 'promotionTypeName'},
+            {updateField: 'promotionPriceType', valueFiled: 'promotionPriceType'},
+            {updateField: 'promotionPriceTypeName', valueFiled: 'promotionPriceTypeName'},
+            {updateField: 'promotionType', valueFiled: 'promotionType'},
+            {updateField: 'promotionName', valueFiled: 'promotionName'},
+            {updateField: 'activityId', valueFiled: 'activityId'},
+            {updateField: 'activityName', valueFiled: 'activityName'},
+            {updateField: 'combinedTypeId', valueFiled: 'combinedTypeId'},
+            {updateField: 'combinedSpecsId', valueFiled: 'combinedSpecsId'},
+            {updateField: 'orderItemQuantity', valueFiled: 'orderItemQuantity'},
+            {updateField: 'discountStandard', valueFiled: 'discountStandard'},
+            {updateField: 'discountPromotion', valueFiled: 'discountPromotion'},
+            {updateField: 'flgGift', valueFiled: 'flgGift'},
+            {updateField: 'nonGlassPriceItems', valueFiled: 'nonGlassPriceItems'},
+            {updateField: 'nonGlassSpuItems', valueFiled: 'nonGlassSpuItems'},
+            {updateField: 'nonGlassListShow', valueFiled: 'nonGlassListShow'},
+            {updateField: 'flgNonStandardType', valueFiled: 'flgNonStandardType'},
+            {updateField: 'specialType', valueFiled: 'specialType'},
+            {updateField: 'cpFlgGift', valueFiled: 'cpFlgGift'},
+            {updateField: 'flgAllowSpecsUndefine', valueFiled: 'flgAllowSpecsUndefine'},
+            {updateField: 'flgSpecsUndefine', valueFiled: 'flgSpecsUndefine'},
+            {updateField: 'specialFormula', valueFiled: 'specialFormula'},
+            {updateField: 'whId', valueFiled: 'whId'},
+            {updateField: 'bomParentId', valueFiled: 'bomParentId'},
+            {updateField: 'priceCost', valueFiled: 'priceCost'},
+            {updateField: 'categoryId', valueFiled: 'categoryId'},
+            {updateField: 'flgInstalled', defaultValue: true},
+          ],
+          searchDetailFlag: false
+        },
+        {
+          field: 'skuName',
+          controlId: 'skuId',
+          type: 'tableSelect',
+          width: 300,
+          fixed: 'left',
+          promotionType: true,
+          dataType: self.$config.tableSelectType.goods,
+          fieldUpdate: [
+            {updateField: 'skuCode', valueFiled: 'skuCode'},
+            {updateField: 'skuModel', valueFiled: 'skuModel'},
+            {updateField: 'itemPrice', valueFiled: 'itemPrice'},
+            {updateField: 'itemQuantity', valueFiled: 'itemQuantity', defaultValue: 1},
+            {updateField: 'skuId', valueFiled: 'skuId'},
+            {updateField: 'skuName', valueFiled: 'skuName'},
+            {updateField: 'spuId', valueFiled: 'spuId'},
+            {updateField: 'spuCode', valueFiled: 'spuCode'},
+            {updateField: 'skuSpecs', valueFiled: 'skuSpecs'},//商品规格
+            {updateField: 'skuUnit', valueFiled: 'skuUnit'},//计量单位
+            {updateField: 'flgEstimate', valueFiled: 'flgEstimate'},//计量标识
+            {updateField: 'salesMode', valueFiled: 'salesMode'},//流通方式
+            {updateField: 'goodsCategoryName', valueFiled: 'goodsCategoryName'},//商品种类
+            {updateField: 'goodsVarietyName', valueFiled: 'goodsCategoryName'},//商品品种
+            {updateField: 'skuSeries', valueFiled: 'skuSeries'},//商品系列
+            {updateField: 'skuBrand', valueFiled: 'skuBrand'},//商品品牌
+            {updateField: 'skuLength', valueFiled: 'skuLength'},
+            {updateField: 'skuWidth', valueFiled: 'skuWidth'},
+            {updateField: 'skuHeight', valueFiled: 'skuHeight'},
+            {updateField: 'skuVolume', valueFiled: 'skuVolume'},
+            {updateField: 'skuWeight', valueFiled: 'skuWeight'},
+            {updateField: 'skuArea', valueFiled: 'skuArea'},
+            {updateField: 'skuType', valueFiled: 'skuType'},
+            {updateField: 'standardId', valueFiled: 'standardId'},
+            {updateField: 'standardItemId', valueFiled: 'standardItemId'},
+            {updateField: 'priceStandard', valueFiled: 'priceStandard'},
+            {updateField: 'promotionId', valueFiled: 'promotionId'},
+            {updateField: 'promotionItemId', valueFiled: 'promotionItemId'},
+            {updateField: 'pricePromotion', valueFiled: 'pricePromotion'},
+            {updateField: 'priceSale', valueFiled: 'priceSale'},
+            {updateField: 'promotionTypeName', valueFiled: 'promotionTypeName'},
+            {updateField: 'promotionPriceType', valueFiled: 'promotionPriceType'},
+            {updateField: 'promotionPriceTypeName', valueFiled: 'promotionPriceTypeName'},
+            {updateField: 'promotionType', valueFiled: 'promotionType'},
+            {updateField: 'promotionName', valueFiled: 'promotionName'},
+            {updateField: 'activityId', valueFiled: 'activityId'},
+            {updateField: 'activityName', valueFiled: 'activityName'},
+            {updateField: 'combinedTypeId', valueFiled: 'combinedTypeId'},
+            {updateField: 'combinedSpecsId', valueFiled: 'combinedSpecsId'},
+            {updateField: 'orderItemQuantity', valueFiled: 'orderItemQuantity'},
+            {updateField: 'discountStandard', valueFiled: 'discountStandard'},
+            {updateField: 'discountPromotion', valueFiled: 'discountPromotion'},
+            {updateField: 'flgGift', valueFiled: 'flgGift'},
+            {updateField: 'nonGlassPriceItems', valueFiled: 'nonGlassPriceItems'},
+            {updateField: 'nonGlassSpuItems', valueFiled: 'nonGlassSpuItems'},
+            {updateField: 'nonGlassListShow', valueFiled: 'nonGlassListShow'},
+            {updateField: 'flgNonStandardType', valueFiled: 'flgNonStandardType'},
+            {updateField: 'specialType', valueFiled: 'specialType'},
+            {updateField: 'cpFlgGift', valueFiled: 'cpFlgGift'},
+            {updateField: 'flgAllowSpecsUndefine', valueFiled: 'flgAllowSpecsUndefine'},
+            {updateField: 'flgSpecsUndefine', valueFiled: 'flgSpecsUndefine'},
+            {updateField: 'specialFormula', valueFiled: 'specialFormula'},
+            {updateField: 'whId', valueFiled: 'whId'},
+            {updateField: 'bomParentId', valueFiled: 'bomParentId'},
+            {updateField: 'priceCost', valueFiled: 'priceCost'},
+            {updateField: 'categoryId', valueFiled: 'categoryId'},
+            {updateField: 'flgInstalled', defaultValue: true},
+          ],
+          searchDetailFlag: false
+        },
+        {
+          field: 'priceSale',
+          type: 'number',
+          digits: 2,
+          switchField: 'flgGift', // 开关控制的列
+          formula: {
+            itemAmount: ['itemQuantity*priceSale*nonStandardArea', 'itemQuantity', 'priceSale', 'nonStandardArea'],
+            discountStandard: ['priceSale/priceStandard*100', 'priceSale', 'priceStandard'],
+            discountPromotion: ['priceSale/pricePromotion*100', 'priceSale', 'pricePromotion']
+          },
+          shareField: 'percent',
+          percent: ['priceSale/pricePromotion*pricePromotion[child]', 'priceSale', 'pricePromotion[child]', 'pricePromotion']
+        },//价格(子级放在前面,不然replace就不对)
+        {
+          field: 'itemQuantity',
+          type: 'number',
+          shareField: 'orderItemQuantity',
+          digits: 0,
+          sum: true,
+          formula: {
+            itemAmount: ['itemQuantity*priceSale*nonStandardArea', 'itemQuantity', 'priceSale', 'nonStandardArea'],
+            discountStandard: ['priceSale/priceStandard*100', 'priceSale', 'priceStandard'],
+            discountPromotion: ['priceSale/pricePromotion*100', 'priceSale', 'pricePromotion']
+          },
+        },//数量
+        {
+          field: 'itemAmount',
+          type: 'number',
+          digits: 2,
+          number: true,
+          sum: true,
+          shareField: 'percent',
+          switchField: 'flgGift', // 开关控制的列
+          supply: true,  // 补缺,最后一条,用父级-其他子级
+          // amount: ['itemQuantity[child]*priceSale[child]', 'itemQuantity[child]', 'priceSale[child]'],
+          percent: ['itemAmount/pricePromotion*pricePromotion[child]', 'itemAmount', 'pricePromotion[child]', 'pricePromotion'],
+          formulaLate: true,  // 只有在changevalue时触发,为了避免价格和数量计算金额,然后再根据金额和数量计算价格
+          formula: {
+            priceSale: ['itemAmount/itemQuantity/nonStandardArea', 'itemAmount', 'itemQuantity', 'nonStandardArea'],
+            discountStandard: ['itemAmount/itemQuantity/priceStandard/nonStandardArea*100', 'itemAmount', 'itemQuantity', 'priceStandard', 'nonStandardArea'],
+            discountPromotion: ['itemAmount/itemQuantity/pricePromotion/nonStandardArea*100', 'itemAmount', 'itemQuantity', 'pricePromotion', 'nonStandardArea']
+          },
+        },//金额
+        {field: 'flgInstalled', type: 'switch'},//安装标识
+        {field: 'activityName', type: 'disabled'},//套餐名称
+        {field: 'promotionTypeName', type: 'disabled'},//促销类型
+        {field: 'promotionName', type: 'disabled', title: self.$t('promoName')},//促销名称
+        {
+          field: 'priceStandard',
+          type: 'disabled',
+          number: true,
+          digits: 2,
+          shareField: 'sumTotal',
+          // 根据子级去计算父级
+          sumTotal: ['orderItemQuantity[child]*priceStandard[child]', 'orderItemQuantity[child]', 'priceStandard[child]']
+        },//商品标价
+        {
+          field: 'pricePromotion',
+          type: 'disabled',
+          number: true,
+          digits: 2,
+          title: self.$t('standardPriceMoney'),
+        },//商品促销价
+        {
+          field: 'discountStandard',
+          type: 'disabled',
+          number: true,
+          digits: 2,
+        },//标价折扣
+        {
+          field: 'discountPromotion',
+          type: 'disabled',
+          number: true,
+          equal: true,
+          digits: 2,
+        },//促销折扣
+        // {
+        //   field: 'whId',
+        //   type: 'select',
+        //   options: () => self.warehouseList,
+        //   labelKey: 'whName',
+        //   valueKey: 'whId',
+        //   equal: true,
+        // },//仓库
+        {
+          copyVisible: this.type !== this.$config.formMode.edit,
+          field: 'whId',
+          type: 'select',
+          options: () => self.warehouseList,
+          labelKey: 'whName',
+          valueKey: 'whId',
+          equal: true,
+          dataType: self.$config.tableSelectType.warehouse,
+          fieldUpdate: [
+            {updateField: 'warehouseName', valueFiled: 'whName'},
+            {updateField: 'whId', valueFiled: 'whId'},
+          ],
+          searchDataFlag: false,
+          //equal: true,
+        },//仓库
+        {
+          field: 'flgGift',
+          type: 'switch',
+          width: 100,
+          value: false,
+          controlField: 'cpFlgGift',
+          switchField: 'priceSale'  // 开关控制的列
+        },//赠品标识
+        {
+          // field: 'usedLocation',
+          // type: 'text',
+          // equal: true,
+          copyVisible: this.type !== this.$config.formMode.edit,
+          field: 'usedLocation',
+          type: 'select',
+          options: () => self.productUsageLocationList,
+          labelKey: 'name',
+          valueKey: 'code',
+          equal: true,
+          dataType: self.$config.tableSelectType.productUsageLocation,
+          fieldUpdate: [
+            {updateField: 'usedLocation', valueFiled: 'name'},
+          ],
+          searchDataFlag: false,
+        },//使用位置
+        // {field: 'glassThickness', type: 'disabled'},//玻璃厚度
+        // {field: 'glassCraft', type: 'disabled'},//玻璃工艺
+        // {field: 'substrateColor', type: 'disabled'},//基材颜色
+        {field: 'nonGlassListShow', type: 'nonGlassFlag'},
+        {
+          field: 'nonstandardRemarks', type: 'disabled', width: 200,
+          equal: true,
+        }, //非标备注
+        {
+          field: 'flgSpecsUndefine',
+          type: 'switch',
+          value: false,
+          controlField: 'flgAllowSpecsUndefine',
+          width: 100,
+        },//坑距待定
+        {
+          field: 'remarks', type: 'text', width: 300,
+          equal: true,
+        },
+      ],
+      goodsColumnsEdit: [
+        {
+          field: 'skuModel',
+          controlId: 'skuId',
+          treeNode: true,
+          width: 200,
+          type: 'tableSelect',
+          fixed: 'left',
+          promotionType: true,
+          dataType: self.$config.tableSelectType.goods,
+          tip: self.$t('W_117'),
+          fieldUpdate: [
+            {updateField: 'skuCode', valueFiled: 'skuCode'},
+            {updateField: 'skuModel', valueFiled: 'skuModel'},
+            {updateField: 'itemPrice', valueFiled: 'itemPrice'},
+            {updateField: 'tItemQuantity', valueFiled: 'tItemQuantity', defaultValue: 1},
+            {updateField: 'skuId', valueFiled: 'skuId'},
+            {updateField: 'skuName', valueFiled: 'skuName'},
+            {updateField: 'spuId', valueFiled: 'spuId'},
+            {updateField: 'spuCode', valueFiled: 'spuCode'},
+            {updateField: 'skuSpecs', valueFiled: 'skuSpecs'},//商品规格
+            {updateField: 'skuUnit', valueFiled: 'skuUnit'},//计量单位
+            {updateField: 'flgEstimate', valueFiled: 'flgEstimate'},//计量标识
+            {updateField: 'salesMode', valueFiled: 'salesMode'},//流通方式
+            {updateField: 'goodsCategoryName', valueFiled: 'goodsCategoryName'},//商品种类
+            {updateField: 'goodsVarietyName', valueFiled: 'goodsCategoryName'},//商品品种
+            {updateField: 'skuSeries', valueFiled: 'skuSeries'},//商品系列
+            {updateField: 'skuBrand', valueFiled: 'skuBrand'},//商品品牌
+            {updateField: 'skuLength', valueFiled: 'skuLength'},
+            {updateField: 'skuWidth', valueFiled: 'skuWidth'},
+            {updateField: 'skuHeight', valueFiled: 'skuHeight'},
+            {updateField: 'skuVolume', valueFiled: 'skuVolume'},
+            {updateField: 'skuWeight', valueFiled: 'skuWeight'},
+            {updateField: 'skuArea', valueFiled: 'skuArea'},
+            {updateField: 'skuType', valueFiled: 'skuType'},
+            {updateField: 'standardId', valueFiled: 'standardId'},
+            {updateField: 'standardItemId', valueFiled: 'standardItemId'},
+            {updateField: 'priceStandard', valueFiled: 'priceStandard'},
+            {updateField: 'promotionId', valueFiled: 'promotionId'},
+            {updateField: 'promotionItemId', valueFiled: 'promotionItemId'},
+            {updateField: 'pricePromotion', valueFiled: 'pricePromotion'},
+            {updateField: 'priceSale', valueFiled: 'priceSale'},
+            {updateField: 'promotionTypeName', valueFiled: 'promotionTypeName'},
+            {updateField: 'promotionPriceType', valueFiled: 'promotionPriceType'},
+            {updateField: 'promotionPriceTypeName', valueFiled: 'promotionPriceTypeName'},
+            {updateField: 'promotionType', valueFiled: 'promotionType'},
+            {updateField: 'promotionName', valueFiled: 'promotionName'},
+            {updateField: 'activityId', valueFiled: 'activityId'},
+            {updateField: 'activityName', valueFiled: 'activityName'},
+            {updateField: 'combinedTypeId', valueFiled: 'combinedTypeId'},
+            {updateField: 'combinedSpecsId', valueFiled: 'combinedSpecsId'},
+            {updateField: 'orderItemQuantity', valueFiled: 'orderItemQuantity'},
+            {updateField: 'discountStandard', valueFiled: 'discountStandard'},
+            {updateField: 'discountPromotion', valueFiled: 'discountPromotion'},
+            {updateField: 'flgGift', valueFiled: 'flgGift'},
+            {updateField: 'nonGlassPriceItems', valueFiled: 'nonGlassPriceItems'},
+            {updateField: 'nonGlassSpuItems', valueFiled: 'nonGlassSpuItems'},
+            {updateField: 'nonGlassListShow', valueFiled: 'nonGlassListShow'},
+            {updateField: 'flgNonStandardType', valueFiled: 'flgNonStandardType'},
+            {updateField: 'specialType', valueFiled: 'specialType'},
+            {updateField: 'cpFlgGift', valueFiled: 'cpFlgGift'},
+            {updateField: 'flgAllowSpecsUndefine', valueFiled: 'flgAllowSpecsUndefine'},
+            {updateField: 'flgSpecsUndefine', valueFiled: 'flgSpecsUndefine'},
+            {updateField: 'specialFormula', valueFiled: 'specialFormula'},
+            {updateField: 'whId', valueFiled: 'whId'},
+            {updateField: 'bomParentId', valueFiled: 'bomParentId'},
+            {updateField: 'priceCost', valueFiled: 'priceCost'},
+            {updateField: 'categoryId', valueFiled: 'categoryId'},
+            {updateField: 'flgInstalled', defaultValue: true},
+          ],
+          searchDetailFlag: false
+        },
+        {
+          field: 'skuName',
+          controlId: 'skuId',
+          type: 'tableSelect',
+          width: 300,
+          fixed: 'left',
+          promotionType: true,
+          dataType: self.$config.tableSelectType.goods,
+          fieldUpdate: [
+            {updateField: 'skuCode', valueFiled: 'skuCode'},
+            {updateField: 'skuModel', valueFiled: 'skuModel'},
+            {updateField: 'itemPrice', valueFiled: 'itemPrice'},
+            {updateField: 'tItemQuantity', valueFiled: 'tItemQuantity', defaultValue: 1},
+            {updateField: 'skuId', valueFiled: 'skuId'},
+            {updateField: 'skuName', valueFiled: 'skuName'},
+            {updateField: 'spuId', valueFiled: 'spuId'},
+            {updateField: 'spuCode', valueFiled: 'spuCode'},
+            {updateField: 'skuSpecs', valueFiled: 'skuSpecs'},//商品规格
+            {updateField: 'skuUnit', valueFiled: 'skuUnit'},//计量单位
+            {updateField: 'flgEstimate', valueFiled: 'flgEstimate'},//计量标识
+            {updateField: 'salesMode', valueFiled: 'salesMode'},//流通方式
+            {updateField: 'goodsCategoryName', valueFiled: 'goodsCategoryName'},//商品种类
+            {updateField: 'goodsVarietyName', valueFiled: 'goodsCategoryName'},//商品品种
+            {updateField: 'skuSeries', valueFiled: 'skuSeries'},//商品系列
+            {updateField: 'skuBrand', valueFiled: 'skuBrand'},//商品品牌
+            {updateField: 'skuLength', valueFiled: 'skuLength'},
+            {updateField: 'skuWidth', valueFiled: 'skuWidth'},
+            {updateField: 'skuHeight', valueFiled: 'skuHeight'},
+            {updateField: 'skuVolume', valueFiled: 'skuVolume'},
+            {updateField: 'skuWeight', valueFiled: 'skuWeight'},
+            {updateField: 'skuArea', valueFiled: 'skuArea'},
+            {updateField: 'skuType', valueFiled: 'skuType'},
+            {updateField: 'standardId', valueFiled: 'standardId'},
+            {updateField: 'standardItemId', valueFiled: 'standardItemId'},
+            {updateField: 'priceStandard', valueFiled: 'priceStandard'},
+            {updateField: 'promotionId', valueFiled: 'promotionId'},
+            {updateField: 'promotionItemId', valueFiled: 'promotionItemId'},
+            {updateField: 'pricePromotion', valueFiled: 'pricePromotion'},
+            {updateField: 'priceSale', valueFiled: 'priceSale'},
+            {updateField: 'promotionTypeName', valueFiled: 'promotionTypeName'},
+            {updateField: 'promotionPriceType', valueFiled: 'promotionPriceType'},
+            {updateField: 'promotionPriceTypeName', valueFiled: 'promotionPriceTypeName'},
+            {updateField: 'promotionType', valueFiled: 'promotionType'},
+            {updateField: 'promotionName', valueFiled: 'promotionName'},
+            {updateField: 'activityId', valueFiled: 'activityId'},
+            {updateField: 'activityName', valueFiled: 'activityName'},
+            {updateField: 'combinedTypeId', valueFiled: 'combinedTypeId'},
+            {updateField: 'combinedSpecsId', valueFiled: 'combinedSpecsId'},
+            {updateField: 'orderItemQuantity', valueFiled: 'orderItemQuantity'},
+            {updateField: 'discountStandard', valueFiled: 'discountStandard'},
+            {updateField: 'discountPromotion', valueFiled: 'discountPromotion'},
+            {updateField: 'flgGift', valueFiled: 'flgGift'},
+            {updateField: 'nonGlassPriceItems', valueFiled: 'nonGlassPriceItems'},
+            {updateField: 'nonGlassSpuItems', valueFiled: 'nonGlassSpuItems'},
+            {updateField: 'nonGlassListShow', valueFiled: 'nonGlassListShow'},
+            {updateField: 'flgNonStandardType', valueFiled: 'flgNonStandardType'},
+            {updateField: 'specialType', valueFiled: 'specialType'},
+            {updateField: 'cpFlgGift', valueFiled: 'cpFlgGift'},
+            {updateField: 'flgAllowSpecsUndefine', valueFiled: 'flgAllowSpecsUndefine'},
+            {updateField: 'flgSpecsUndefine', valueFiled: 'flgSpecsUndefine'},
+            {updateField: 'specialFormula', valueFiled: 'specialFormula'},
+            {updateField: 'whId', valueFiled: 'whId'},
+            {updateField: 'bomParentId', valueFiled: 'bomParentId'},
+            {updateField: 'priceCost', valueFiled: 'priceCost'},
+            {updateField: 'categoryId', valueFiled: 'categoryId'},
+            {updateField: 'flgInstalled', defaultValue: true},
+          ],
+          searchDetailFlag: false
+        },
+        {
+          field: 'priceSale',
+          type: 'number',
+          digits: 2,
+          switchField: 'flgGift', // 开关控制的列
+          formula: {
+            tItemAmount: ['tItemQuantity*priceSale*nonStandardArea', 'tItemQuantity', 'priceSale', 'nonStandardArea'],
+            discountStandard: ['priceSale/priceStandard*100', 'priceSale', 'priceStandard'],
+            discountPromotion: ['priceSale/pricePromotion*100', 'priceSale', 'pricePromotion']
+          },
+          shareField: 'percent',
+          percent: ['priceSale/pricePromotion*pricePromotion[child]', 'priceSale', 'pricePromotion[child]', 'pricePromotion']
+        },//价格(子级放在前面,不然replace就不对)
+        {
+          field: 'tItemQuantity',
+          type: 'number',
+          shareField: 'orderItemQuantity',
+          title: self.$t('itemQuantity'),
+          sum: true,
+          formula: {
+            tItemAmount: ['tItemQuantity*priceSale*nonStandardArea', 'tItemQuantity', 'priceSale', 'nonStandardArea'],
+            discountStandard: ['priceSale/priceStandard*100', 'priceSale', 'priceStandard'],
+            discountPromotion: ['priceSale/pricePromotion*100', 'priceSale', 'pricePromotion']
+          },
+        },//数量
+        {
+          field: 'tItemAmount',
+          type: 'number',
+          title: self.$t('itemAmount'),
+          digits: 2,
+          number: true,
+          sum: true,
+          shareField: 'percent',
+          switchField: 'flgGift', // 开关控制的列
+          supply: true,  // 补缺,最后一条,用父级-其他子级
+          // amount: ['itemQuantity[child]*priceSale[child]', 'itemQuantity[child]', 'priceSale[child]'],
+          percent: ['tItemAmount/pricePromotion*pricePromotion[child]', 'tItemAmount', 'pricePromotion[child]', 'pricePromotion'],
+          formulaLate: true,  // 只有在changevalue时触发,为了避免价格和数量计算金额,然后再根据金额和数量计算价格
+          formula: {
+            priceSale: ['tItemAmount/tItemQuantity/nonStandardArea', 'tItemAmount', 'tItemQuantity', 'nonStandardArea'],
+            discountStandard: ['tItemAmount/tItemQuantity/priceStandard/nonStandardArea*100', 'tItemAmount', 'tItemQuantity', 'priceStandard', 'nonStandardArea'],
+            discountPromotion: ['tItemAmount/tItemQuantity/pricePromotion/nonStandardArea*100', 'tItemAmount', 'tItemQuantity', 'pricePromotion', 'nonStandardArea']
+          },
+        },//金额
+        {field: 'flgInstalled', type: 'switch'},//安装标识
+        {field: 'activityName', type: 'disabled'},//套餐名称
+        {field: 'promotionTypeName', type: 'disabled'},//促销类型
+        {field: 'promotionName', type: 'disabled', title: self.$t('promoName')},//促销名称
+        {
+          field: 'priceStandard',
+          type: 'disabled',
+          number: true,
+          digits: 2,
+          shareField: 'sumTotal',
+          // 根据子级去计算父级
+          sumTotal: ['orderItemQuantity[child]*priceStandard[child]', 'orderItemQuantity[child]', 'priceStandard[child]']
+        },//商品标价
+        {
+          field: 'pricePromotion',
+          type: 'disabled',
+          number: true,
+          digits: 2,
+          title: self.$t('standardPriceMoney'),
+          // shareField: 'percent',
+          // percent: ['pricePromotion/priceStandard*pricePromotion[child]', 'pricePromotion', 'priceStandard[child]', 'priceStandard']
+        },//商品促销价
+        {
+          field: 'discountStandard',
+          type: 'disabled',
+          number: true,
+          digits: 2,
+        },//标价折扣
+        {
+          field: 'discountPromotion',
+          type: 'disabled',
+          number: true,
+          equal: true,
+          digits: 2,
+        },//促销折扣
+        {
+          field: 'whId',
+          type: 'select',
+          options: () => self.warehouseList,
+          labelKey: 'whName',
+          valueKey: 'whId',
+          equal: true,
+        },//仓库
+        {
+          field: 'flgGift',
+          type: 'switch',
+          width: 100,
+          value: false,
+          controlField: 'cpFlgGift',
+          switchField: 'priceSale'  // 开关控制的列
+        },//赠品标识
+        {
+          field: 'usedLocation',
+          type: 'disabled',
+        },
+      ],
+      //商品合计信息
+      goodsFootFormData: {
+        sumGoodsAmount: 0,
+        sumStandard: 0,
+        sumPromotion: 0,
+        discountPromotion: 0,
+        discountStandard: 0,
+        sumVolume: 0,
+        sumWeight: 0,
+        sumQuantity: 0,//总数量
+      },
+      oldSumGoodsAmount: 0,//记录上一次货物总额
+      //客户收款
+      feeFormData: {
+        sumAmount: 0, //合计金额
+        sumFeeAmount: 0,//费用金额
+        sumReceiptAmount: 0,//定金金额
+        sumUsePrestore: 0,//使用预存
+        usablePrestore: 0,//可用预存
+        sumReceivableAmount: 0,// 定金+使用预存
+        receivable: 0, //剩余应收
+        sumReceiptList: [],//收款
+        remarks: null,
+        annexPaths: [],
+      },
+      feeModal: false,//费用项目modal变量
+      feeList: [],//费用项目
+      feeListSocial: [],//费用项目记录(清空时使用)
+      receiptList: [],//定金
+      filesModal: false,
+      warehouseList: [],//仓库
+      productUsageLocationList: [],//使用位置
+      defWhId: null,//默认仓库id
+      warehouseName: null,//默认仓库名称
+      disabledFlag: false,//禁用标识
+      editTreeTableFlag: false,//商品表格是否可用
+      //改价
+      updatePriceFlag: false,
+      selectChangeTableFlag: true,//是否选中数据
+      priceList: [],
+      priceFootFormData: {
+        sumGoodsAmount: 0,
+        selectedAmount: 0,
+        changePriceAmount: 0,
+      },
+      checkboxPriceList: [],//改价选中行
+    }
+  },
+
+  methods: {
+    /**
+     *   @desc   : 改价弹窗打开
+     *   @date   : 2023/10/24 9:40
+     *   @author : 付斌
+     */
+    updatePrice() {
+    },
+    /**
+     *   @desc   : 改价弹窗复选框选中
+     *   @date   : 2023/10/24 15:25
+     *   @author : 付斌
+     */
+    selectChangeTable() {
+
+    },
+    /**
+     *   @desc   : 改价子集赋值
+     *   @date   : 2023/10/24 16:35
+     *   @author : 付斌
+     */
+    setChildrenData(row, sumGoodsAmount, sumPromotion) {
+
+    },
+    /**
+     *   @desc   :改价- 手动改变标准售价折扣
+     *   @date   : 2023/4/14 9:21
+     *   @author : 付斌
+     */
+    changePriceDiscountPromotion(value, sumGoodsAmount) {
+
+    },
+    /**
+     *   @desc   : 手动改变货物总额
+     *   @date   : 2023/4/14 10:58
+     *   @author : 付斌
+     */
+    changePirceSumGoodsAmount(value) {
+
+    },
+    /**
+     *   @desc   : 报价确认
+     *   @date   : 2023/10/24 13:28
+     *   @author : 付斌
+     */
+    updatePriceOk() {
+
+    },
+    /**
+     *   @desc   : 报价取消
+     *   @date   : 2023/10/24 13:28
+     *   @author : 付斌
+     */
+    updatePriceCancel() {
+
+    },
+    /**
+     *   @desc   : 查询仓库
+     *   @date   : 2022/9/19 9:44
+     *   @author : 付斌
+     */
+    getWarehouse() {
+
+    },
+    /**
+     * @desc   : 修改客户电话后,清除当前客户信息
+     * @author : 付斌
+     * @date   : 2022-08-01 14:39
+     */
+    customerPhoneChange(e, change) {
+
+    },
+    /**
+     *   @desc   : 获取客户资料并且监听每一次的客户修改
+     *   @date   : 2022/5/24 15:04
+     *   @author : 付斌
+     */
+    selectCustomer(value) {
+
+    },
+    /**
+     *   @desc   : 客户赋值
+     *   @date   : 2022/5/28 16:18
+     *   @author : 付斌
+     */
+    setCustomer(row) {
+
+    },
+    /**
+     *   @desc   : 清空客户信息
+     *   @date   : 2022/5/28 16:26
+     *   @author : 付斌
+     */
+    clearCutomer() {
+
+    },
+    /**
+     *   @desc   : 选择地址
+     *   @date   : 2022/6/9 19:15
+     *   @author : 付斌
+     */
+    chooseAddress(value) {
+
+    },
+    /**
+     *   @desc   : 获取业务员相关
+     *   @date   : 2022/5/28 10:43
+     *   @author : 付斌
+     */
+    staffOk(val) {
+
+    },
+    /**
+     *   @desc   : 获取业务员相关
+     *   @date   : 2022/5/28 10:43
+     *   @author : 付斌
+     */
+    orgOk(val) {
+
+    },
+    /**
+     *   @desc   : 获取选择的家装业务员
+     *   @date   : 2022/12/27 9:24
+     *   @author : 付斌
+     */
+    hdStaffOK(rows) {
+
+    },
+    /**
+     *   @desc   : 拼写详细地址
+     *   @date   : 2022/6/9 10:08
+     *   @author : 付斌
+     */
+    setAddressFull(e) {
+
+    }
+    ,
+    /**
+     * @desc   : 费用改为直接输入金额
+     * @author : 付斌
+     * @date   : 2022/6/20 16:45
+     */
+    handleFeeChange() {
+      // 计算合计金额
+      this.getSumAmount();
+    }
+    ,
+    /**
+     *   @desc   : 计算总费用金额,并提交到总单中
+     *   @date   : 2022/6/9 11:46
+     *   @author : 付斌
+     */
+    submitFee() {
+
+    }
+    ,
+    /**
+     *   @desc   : 关闭费用项目弹窗
+     *   @date   : 2022/6/9 11:57
+     *   @author : 付斌
+     */
+    clearFee() {
+
+    }
+    ,
+    /**
+     *   @desc   : 关闭定金弹窗
+     *   @date   : 2022/6/9 12:08
+     *   @author : 付斌
+     */
+    clearReceipt() {
+
+    }
+    ,
+    /**
+     *   @desc   : 清空总单费用或定金金额事件
+     *   @date   : 2022/6/9 11:46
+     *   @author : 付斌
+     */
+    clearAccount(value) {
+
+    }
+    ,
+    /**
+     * @desc   : 收款金额
+     * @author : 付斌
+     * @date   : 2022/6/17 9:10
+     */
+    chooseReceipt(amount, list, remarks, annexPaths) {
+
+    },
+    /**
+     *   @desc   : desc
+     *   @date   : 2022/6/9 13:39
+     *   @author : 付斌
+     */
+    uploadFile(response, file, fileList) {
+
+    }
+    ,
+    /**
+     *   @desc   : 移除文件
+     *   @date   : 2022/6/9 13:47
+     *   @author : 付斌
+     */
+    fileRemove(file, fileList) {
+    }
+    ,
+    /**
+     * @desc   : desc
+     * @author : 付斌
+     * @date   : 2022/6/23 8:48
+     */
+    changeValue(field, row, rowIndex) {
+    },
+    /**
+     *   @desc   : 安装标识
+     *   @date   : 2023/11/29 9:31
+     *   @author : 付斌
+     */
+    setFlgInstalled() {
+
+    },
+    /**
+     *   @desc   : 获取商品表格中数量、金额后计算总单信息
+     *   @date   : 2022/5/30 15:31
+     *   @author : 付斌
+     */
+    getTotals(field, row, rowIndex) {
+
+    },
+    /**
+     *   @desc   : 手动改变标准售价折扣
+     *   @date   : 2023/4/14 9:21
+     *   @author : 付斌
+     */
+    changeDiscountPromotion(value, flag) {
+
+    },
+    /**
+     *   @desc   : 手动改变货物总额
+     *   @date   : 2023/4/14 10:58
+     *   @author : 付斌
+     */
+    changeSumGoodsAmount(value) {
+      if (value) {
+        this.changeDiscountPromotion(null, value)
+      }
+    },
+    /**
+     * @desc   : 编辑时查询非标参数
+     * @author : 付斌
+     * @date   : 2022/8/26 13:37
+     */
+    setNonGlassForm(row) {
+
+    }
+    ,
+    /**
+     * @desc   : 计算合计金额
+     * @author : 付斌
+     * @date   : 2022/6/16 14:45
+     */
+    getSumAmount() {
+
+    },
+    /**
+     * @desc   : 关闭窗体
+     * @author : 付斌
+     * @date   : 2022/6/21 19:18
+     */
+    closeForm() {
+      this.formData = {}
+      this.$router.push('/sale/order/index')
+    }
+    ,
+    /**
+     * @desc   : 提交事件
+     * @author : 付斌
+     * @date   : 2022/03/04 13:17
+     */
+    submitForm(flag) {
+
+    }
+    ,
+    /**
+     * @desc   : 新建成功后清理数据
+     * @author : 付斌
+     * @date   : 2022/6/25 11:42
+     */
+    clearForm() {
+
+    },
+
+    /**
+     *   @desc   : 清空设计师相关信息
+     *   @date   : 2022/12/27 16:43
+     *   @author : 付斌
+     */
+    clearDesigner() {
+
+    },
+
+    /***************************列表及其他事件************************************/
+
+    /***************************设定参数函数************************************/
+
+    /**
+     * @desc   : 设置保存的参数(小编辑)
+     * @author : 付斌
+     * @date   : 2022/8/24 17:35
+     */
+    setSubmitFormParamsLimitEdit() {
+
+    },
+
+    /**
+     * @desc   : 设置保存的参数
+     * @author : 付斌
+     * @date   : 2022/3/22 17:31
+     */
+    setSubmitFormParams(flag) {
+
+    },
+    /**
+     * @desc   : 获取改变的数据
+     * @author : 付斌
+     * @date   : 2022/7/18 11:11
+     */
+    getTableChangeData() {
+
+    },
+    /**
+     * @desc   : 处理组合中的bom数据
+     * @author : 付斌
+     * @date   : 2022/8/4 11:53
+     */
+    setCombinedBomData(row, pRow) {
+
+    },
+    /**
+     * @desc   : 设置明细
+     * @author : 付斌
+     * @date   : 2022/6/21 15:54
+     */
+    setOrderItem(params) {
+
+    },
+    /***************************created调用数据接口函数************************************/
+
+    /**
+     * @desc   : 通过id查询
+     * @author : 付斌
+     * @date   : 2022/03/04 13:17
+     */
+    detail(id) {
+
+    },
+    /**
+     * @desc   : 判断列是否可以编辑
+     * @author : 付斌
+     * @date   : 2022/6/21 16:42
+     */
+    checkColumnIsEdit(field) {
+
+    },
+    /**
+     * @desc   : 赋值
+     * @author : 付斌
+     * @date   : 2022/6/20 11:05
+     */
+    setEntityByEdit(data) {
+
+    },
+    /**
+     *   @desc   : 渠道改变时要通过渠道过滤客户来源
+     *   @date   : 2022/5/25 16:47
+     *   @author : 付斌
+     */
+    changeChannel(value) {
+      //更改渠道时如果客户来源有值要制空
+      if (this.formData.customerFrom) {
+        this.formData.customerFrom = null
+      }
+      //根据渠道id过滤客户来源
+      this.selectCustomerFrom(value)
+    },
+    /**
+     *   @desc   : 页面初始化所需下拉数据
+     *   @date   : 2022/5/25 15:53
+     *   @author : 付斌
+     */
+    initSelectData() {
+      //查询集团字典获取客户信息
+      this.getCustomerType()
+      //查询客户来源
+      this.selectCustomerFrom()
+      //查询装修户型数
+      this.selectToilets()
+      //查询仓库
+      this.getWarehouse()
+      //新建时才查询,编辑时直接查了
+      if (this.type == this.$config.formMode.add) {
+        this.$nextTick(() => {
+          //查询结算方式
+          this.selectReceipt()
+        })
+      }
+    },
+    /**
+     *   @desc   : 查询结算方式
+     *   @date   : 2022/6/9 12:04
+     *   @author : 付斌
+     */
+    selectReceipt() {
+
+    },
+    /**
+     *   @desc   : 切换部门获取客户可用预存
+     *   @date   : 2022/9/8 12:04
+     *   @author : 付斌
+     */
+    selectUsePrestore() {
+
+    },
+    /**
+     *   @desc   : 查询客户来演
+     *   @date   : 2022/5/25 15:51
+     *   @author : 付斌
+     */
+    selectCustomerFrom(channelId) {
+
+    },
+    /**
+     *   @desc   : 选择装修户型数赋值
+     *   @date   : 2022/7/22 9:30
+     *   @author : 付斌
+     */
+    selectTolietCount(val) {
+
+    },
+    /**
+     *   @desc   : 查询装修户型数
+     *   @date   : 2022/5/25 15:51
+     *   @author : 付斌
+     */
+    selectToilets() {
+
+    },
+    /**
+     * @desc   : 查询itemCode查询集团字典
+     * @author : 付斌
+     * @date   : 2022-05-23 17:22
+     */
+    getCustomerType() {
+
+    },
+    /**
+     * @desc   : 设置默认值
+     * @author : 付斌
+     * @date   : 2022/6/15 16:24
+     */
+    setDefaultValue() {
+
+    },
+    /**
+     *   @desc   : 根据业务部门获取商户信息
+     *   @date   : 2023/10/7 17:29
+     *   @author : 付斌
+     */
+    getOrgAndSaleChannel(orgId) {
+
+    },
+  },
+  /**
+   * @desc   : 在实例创建完成后被立即同步调用
+   * @author : 付斌
+   * @date   : 2022/3/3 10:32
+   */
+  created() {
+
+  },
 }
 </script>
 
-<style scoped>
+<style lang="less" scoped>
+.imageWrap {
+  width: 100%;
+  height: 90px;
+  border: 1px solid red;
+}
+
+.tab-class {
+  width: 100%;
+  height: 32px;
+  position: fixed;
+  z-index: 999;
+  background: #fff;
+}
+
+.Col {
+  margin-bottom: 3px;
+}
 
+//暗锚
+.hide-anchor {
+  position: relative;
+  top: -50px;
+  display: block;
+  height: 0;
+  overflow: hidden;
+}
+
+
+.form-content-class {
+  padding-left: 8px;
+  width: 98%
+}
+
+.search-button-class {
+  justify-content: center;
+  align-items: center;
+  display: flex;
+  height: 28px;
+  width: 24px;
+  cursor: pointer;
+  border-bottom: 1px solid rgb(220, 222, 226);
+  border-right: 1px solid rgb(220, 222, 226);
+  border-top: 1px solid rgb(220, 222, 226);
+}
+
+.close-class {
+  cursor: pointer;
+  width: 24px;
+  position: absolute;
+  top: 5px;
+  right: 15px;
+  align-items: center;
+  justify-content: center;
+  height: 24px;
+  color: #a0a5ac;
+  z-index: 99;
+}
 </style>

+ 956 - 4
src/view/sale/order/index.vue

@@ -1,13 +1,965 @@
+<!-- @desc:销售订单  @auth:付斌  @time:2024/02/20 15:15 -->
 <template>
+  <div class="main-div">
+    <BaseIndexButtonGroup id="BaseIndexButtonGroup">
+      <template #left>
+        <BaseIndexButton ref="search" name="search"></BaseIndexButton>
+        <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
+        <BaseIndexButton ref="edit" name="edit"></BaseIndexButton>
+        <!--冲正-->
+        <BaseIndexButton ref="revert" name="revert"></BaseIndexButton>
+        <!--打印-->
+        <BaseIndexButton ref="print" name="print"></BaseIndexButton>
+      </template>
+      <template #right>
+        <BaseIndexButton ref="add" name="add"></BaseIndexButton>
+      </template>
+    </BaseIndexButtonGroup>
 
+    <!--  查询条件区域  -->
+    <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
+      <SearchCond ref="searchCond" v-model="searchCond" :type="this.$config.pageCode.staff"
+                  @collapse-change="collapseChange" :setFlag="false"
+                  :searchContent="searchContent"></SearchCond>
+    </div>
+    <!--  表格部分  -->
+    <card :padding=0 style="margin-top: 1px;padding: 0">
+      <DkTabs v-model="tabsModel" :options="tabsOptions" @on-click="tabsClick"></DkTabs>
+      <div style="margin-left: 5px;">
+        <DkTable :pageFlag="true" primaryKey="orderId" :id="'table-'+$options.name" name="table"
+                 @current-change="selectChangeTable" :refreshSelect="false" :show-footer="true"
+                 :checkMethodFlag="true"
+                 :expand-flag="true"
+                 :page-size="pageInfo.pageSize"
+                 :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/order/export/':''"
+                 :export-condition="exportCondition"
+                 :tree-flag="true" sum-total-type="total"
+                 @pageChange="pageSizeChange" ref="table-select" :data="tableData" :height="tableHeight-15">
+          <DkTableColumn field="followOrderFlag" type="switch"
+                         :disabled=false @on-switch-change="switchFollowOrderChange"></DkTableColumn>
+          <DkTableColumn :type="$libaray.checkButtonHasRight('order-edit')?'link':''" field="orderNo"
+                         :tree-node="true"
+                         @on-link="edit"></DkTableColumn>
+          <DkTableColumn :type="$libaray.checkButtonHasRight('customer-detail')?'link':''"
+                         field="customerName"></DkTableColumn>
+          <DkTableColumn field="customerPhone"></DkTableColumn>
+          <DkTableColumn field="contactName"></DkTableColumn>
+          <DkTableColumn field="contractNo"></DkTableColumn>
+          <DkTableColumn field="erpDocNo"></DkTableColumn>
+          <DkTableColumn field="orderStatusString"></DkTableColumn>
+          <DkTableColumn field="apvResult"></DkTableColumn>
+          <DkTableColumn field="outStatusString" :color-cards="['未出库','出库中','出库完成']"
+          ></DkTableColumn>
+          <DkTableColumn field="receiptStatusString" :color-cards="['未收款','部分收款','收款完成']"
+          ></DkTableColumn>
+          <DkTableColumn field="designStatusString"></DkTableColumn>
+          <DkTableColumn field="deliveryTypeName"></DkTableColumn>
+          <DkTableColumn field="tSumQuantity" sum></DkTableColumn>
+          <DkTableColumn field="tSumStandard" :digits="2"
+                         sum></DkTableColumn>
+          <DkTableColumn field="tSumPromotion" :digits="2"
+                         sum></DkTableColumn>
+          <DkTableColumn field="tSumGoodsAmount" :digits="2"
+                         sum></DkTableColumn>
+          <DkTableColumn field="tSumAmount" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="receivable" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="sumReceipt" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="sumFeeAmount" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="sumOutAmount" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="sumRejectAmount" :digits="2" sum></DkTableColumn>
+          <DkTableColumn field="tDiscountPromotion" :digits="2"
+          ></DkTableColumn>
+          <DkTableColumn field="tDiscountStandard" :digits="2"
+          ></DkTableColumn>
+          <DkTableColumn field="contactPhones"></DkTableColumn>
+          <DkTableColumn field="addressName"></DkTableColumn>
+          <DkTableColumn field="addressNo"></DkTableColumn>
+          <DkTableColumn field="addressFull" dataType="string"></DkTableColumn>
+          <DkTableColumn field="deliveryTime" data-type="date"></DkTableColumn>
+          <DkTableColumn field="orgName"></DkTableColumn>
+          <DkTableColumn field="staffName"></DkTableColumn>
+          <DkTableColumn field="erpPushStatusName"></DkTableColumn>
+          <DkTableColumn field="erpPushResult"></DkTableColumn>
+          <DkTableColumn field="crmOrderNo"></DkTableColumn>
+          <DkTableColumn field="customerFromName"></DkTableColumn>
+          <DkTableColumn field="salesChannelName"></DkTableColumn>
+          <DkTableColumn field="makingUserName"></DkTableColumn>
+          <DkTableColumn field="makingTime" data-type="dateTime"></DkTableColumn>
+          <DkTableColumn field="remarksInside"></DkTableColumn>
+          <DkTableColumn field="remarks"></DkTableColumn>
+          <DkTableColumn field="sale2OrderNo" data-type="string"></DkTableColumn>
+        </DkTable>
+      </div>
+    </card>
+    <card ref="buttonCard" Sale2IvtTypeclass="function-button-card" :padding=0
+          style="margin-top: 1px;overflow-y: auto;padding: 0">
+      <DkTabs v-model="detailModel" :options="detailOptions"></DkTabs>
+      <!--订单明细-->
+      <div v-if="true">
+        <DkTable :pageFlag="false" :pageTotalFlag="false" :treeFlag="true" primaryKey="itemId"
+                 :id="'table-'+$options.name" :show-footer="true"
+                 :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/order_item/export/'+orderId:''"
+                 name="table" ref="detail-select" :data="tableDataDetail_goodsDetail" :height="tableHeight-15">
+          <DkTableColumn
+            v-for="(item, index) in tableDataTitle_goodsDetail"
+            :key="detailModel+index"
+            align="center"
+            :type="item.type"
+            :field="item.field"
+            :title="item.title"
+            :sum="item.sum"
+            :digits="item.digits"
+            :width="item.width"
+            :dataType="item.dataType"
+            :tree-node="item.treeNode"
+          >
+          </DkTableColumn>
+        </DkTable>
+      </div>
+      <!--订单明细(销售退货单)-->
+      <div v-if="true">
+        <DkTable :pageFlag="false" :pageTotalFlag="false" primaryKey="itemId"
+                 :id="'table-return-'+$options.name" :show-footer="true"
+                 :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/order_item/export/'+orderId:''"
+                 export-condition="orderId"
+                 name="table" ref="detail-select" :data="tableDataDetail_returnDetail" :height="tableHeight-15">
+          <DkTableColumn
+            v-for="(item, index) in tableDataTitle_returnDetail"
+            :key="detailModel + 'return'+index"
+            align="center"
+            :type="item.type"
+            :field="item.field"
+            :title="item.title"
+            :sum="item.sum"
+            :digits="item.digits"
+            :width="item.width"
+            :dataType="item.dataType"
+          >
+          </DkTableColumn>
+        </DkTable>
+      </div>
+      <!--订单明细(销售退款单)-->
+      <div
+        v-if="true">
+        <DkTable :pageFlag="false" :pageTotalFlag="false" primaryKey="itemId"
+                 :id="'table-refund-'+$options.name" :show-footer="true"
+                 :export-url="$libaray.checkButtonHasRight('sale-export')?'/order-server/sale/order_item/export/'+orderId:''"
+                 export-condition="orderId"
+                 name="table" ref="detail-select" :data="tableDataDetail_refundDetail" :height="tableHeight-15">
+          <DkTableColumn
+            v-for="(item, index) in tableDataTitle_refundDetail"
+            :key="detailModel + 'refund'+index"
+            align="center"
+            :type="item.type"
+            :field="item.field"
+            :title="item.title"
+            :sum="item.sum"
+            :digits="item.digits"
+            :width="item.width"
+            :dataType="item.dataType"
+          >
+          </DkTableColumn>
+        </DkTable>
+      </div>
+      <!--收款明细-->
+      <div v-if="true">
+        <DkTable :pageFlag="false" :pageTotalFlag="false" primaryKey="receiptId" :id="'table-'+$options.name"
+                 :show-footer="true"
+                 name="table" ref="receipt-select" :data="tableDataDetail_collectionDetail" :height="tableHeight-15">
+          <DkTableColumn
+            v-for="(item, index) in tableDataTitle_collectionDetail"
+            :key="detailModel+index"
+            align="center"
+            :type="item.type"
+            :field="item.field"
+            :title="item.title"
+            :sum="item.sum"
+            :digits="item.digits"
+            :width="item.width"
+          >
+          </DkTableColumn>
+        </DkTable>
+      </div>
+      <!--附件-->
+      <div v-if="true">
+        <DkTable :pageFlag="false" :pageTotalFlag="false" :id="'table-'+$options.name"
+                 name="table" ref="file-select" :data="tableDataDetail_files" :height="tableHeight-15">
+          <DkTableColumn field="docType" min-width="150" width="150"></DkTableColumn>
+          <DkTableColumn field="name" min-width="300" width="300"></DkTableColumn>
+          <vxe-column field="createTime" min-width="150" width="150"></vxe-column>
+          <vxe-column :title="$t('picture')" class-name="img-column" width="100">
+            <template #default="{row}">
+              <img :src="$config.imgUrl + row.url" v-if="row.type == 'img' || row.type == 'image'"
+                   style="width: 100px; height: 100px; cursor: pointer;"
+                   @click="()=>{
+              bigImgModal = true
+              bigImgUrl = $config.imgUrl + row.url
+              }"/>
+              <!--              @click="openFile(row)"/>-->
+            </template>
+          </vxe-column>
+          <vxe-column>
+            <template #default="{row}">
+              <DkButton @click="openFile(row)">
+                <Icon type="md-download"/>
+              </DkButton>
+            </template>
+          </vxe-column>
+        </DkTable>
+      </div>
+      <!--修改意见-->
+      <div v-if="true">
+        <DkTable :pageFlag="false" :pageTotalFlag="false" primaryKey="amdId" :id="'table-'+$options.name"
+                 :show-footer="true"
+                 name="table" ref="amendment-select" :data="tableDataDetail_erpAmendmentDetail"
+                 :height="tableHeight-15">
+          <DkTableColumn
+            v-for="(item, index) in tableDataTitle_erpAmendmentDetail"
+            :key="detailModel+index"
+            align="center"
+            :type="item.type"
+            :field="item.field"
+            :title="item.title"
+            :sum="item.sum"
+            :digits="item.digits"
+            :width="item.width"
+            :dataType="item.dataType"
+            :tree-node="item.treeNode"
+          >
+          </DkTableColumn>
+        </DkTable>
+      </div>
+    </card>
+
+    <!--收定金  取定金-->
+    <DkModal
+      v-model="depositModal"
+      :loading="loading"
+      ref="modal_editAdd"
+      @on-visible-change="handleReceiptVisible"
+      @modalOk="depositSubmitForm"
+      @modalCancel="depositClearForm"
+      :saveFlag="true"
+      :title=depositTitle
+    >
+      <DkForm ref="formInline" style="width:100%;" name="dk-form" v-model="depositFormData">
+        <!--销售单号-->
+        <DkFormItem style="margin-top: 10px;" prop="orderNo" :required="true">
+          <!--          <SelectMagnifier v-model="depositFormData.orderNo" searchType="S" @ok="selectOrderMessage"-->
+          <!--                           :type="this.$config.MagnifierType.order"></SelectMagnifier>-->
+          <InputPop ref="orderNo" :readonly="true" v-model="depositFormData.orderNo"/>
+
+        </DkFormItem>
+        <!--业务员-->
+        <DkFormItem style="margin-top: 10px;" prop="staffName" :required="true">
+          <InputPop ref="staffName" :readonly="true" v-model="depositFormData.staffName"/>
+        </DkFormItem>
+        <!--业务部门-->
+        <DkFormItem style="margin-top: 10px;" prop="orgName" :required="true">
+          <InputPop ref="orgName" :readonly="true" v-model="depositFormData.orgName"/>
+
+        </DkFormItem>
+        <!--客户电话-->
+        <DkFormItem style="margin-top: 10px;" prop="customerName" :required="true">
+          <InputPop ref="customerName" :readonly="true" v-model="depositFormData.customerName"/>
+        </DkFormItem>
+        <DkFormItem prop="settlementType" style="margin-top: 10px;" :label="$t('settlementTypesName')" :required="true">
+          <SelectPop v-model="depositFormData.settlementType"
+                     :multiple="false" :options="settlementTypeList"
+                     labelKey="typeName"
+                     valueKey="typeId"/>
+
+        </DkFormItem>
+        <DkFormItem prop="sumAmount" style="margin-top: 10px;" :required="true" :label="$t('collectionRequired')">
+          <InputNumberPop v-model="depositFormData.sumAmount" @on-blur="calculationItemAmount"
+                          :negative=true :digits=2 :max="9999999"/>
+        </DkFormItem>
+        <DkFormItem style="margin-top: 10px;" prop="remarks">
+          <InputPop v-model="depositFormData.remarks" textareaFlag/>
+        </DkFormItem>
+        <DkFormItem style="margin-top: 10px;" :label="$t('file')">
+          <DkPicWall v-model="depositFormData.annexPaths" folder="t_receipt/annex_paths"
+                     :accept="$config.uploadFileConfig.acceptPicType"
+                     :format="['jpg','jpeg','png']"></DkPicWall>
+        </DkFormItem>
+      </DkForm>
+    </DkModal>
+  </div>
 </template>
 
 <script>
+
+import {indexMixin} from '@/mixins'
+
 export default {
-  name: "index"
+  name: 'order',
+  mixins: [indexMixin],
+  data() {
+    let self = this
+    return {
+      bigImgModal: false,
+      bigImgUrl: null,
+      //审批
+      approvalValue: self.$config.docCode.order,
+      searchApprovalflag: false,
+      //总单导出条件
+      exportCondition: null,
+      totalTab: null,//存放总单tab切换到那个标签
+      //设计报价单modal
+      designFileModal: false,
+      designFileList: [],
+      kjlPageInfo: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      pageInfo: {
+        total: 0,
+        pageSize: 20,
+        currentPage: 1
+      },
+      //生产进度弹窗
+      dmsStatusModal: false,
+      dmsStatusList: [],
+      //酷家乐设计弹窗
+      kjlDesignModal: false,
+      kjlDesignList: [],
+      // 模式切换值
+      tabsModel: 'orderAll',
+      tabsOptions: [{label: self.$t('orderAll'), name: 'orderAll'}, //全部订单
+        {label: self.$t('priceOrder'), name: 'priceOrder'}, //潜客报价
+        {label: self.$t('dealOrder'), name: 'dealOrder'},//本月订单
+        {label: self.$t('customDesign'), name: 'customDesign'},//我的订单
+        {label: self.$t('followOrder'), name: 'followOrder'},//关注订单
+        // { label: '异常订单', name: '6' },
+      ],
+      //画面模式选项角标
+      bottomList: ['1', '2', '3', '4', '5', '6'],
+      tableData: [],
+      tableDataDetail: [],
+      tableDataDetail_goodsDetail: [],  // 用于存放订单明细数据
+      tableDataDetail_collectionDetail: [], // 用于存放订单收款数据
+      tableDataDetail_returnDetail: [],// 用于存放销售退货单数据
+      tableDataDetail_refundDetail: [],// 用于存放销售退款单数据
+      tableDataDetail_files: [],  // 用于存放订单附件
+      tableDataDetail_erpAmendmentDetail: [],  // 用于存放订单修改意见
+      tableDataTitle: [],
+      tableDataTitle_goodsDetail: [
+        {field: 'skuModel', treeNode: true},
+        {field: 'skuName'},
+        {field: 'skuCode'},
+        {field: 'spuCode'},
+        {field: 'bomSkuCode'},
+        {
+          field: 'tItemQuantity',
+          type: 'number',
+          digits: 0,
+          sum: true
+        },
+        {field: 'priceStandard', digits: 2, type: 'number'},
+        {field: 'pricePromotion', digits: 2, type: 'number'},
+        {field: 'priceSale', digits: 2, type: 'number'},
+        {field: 'tItemAmount', type: 'number', digits: 2, sum: true},
+        {field: 'discountStandard', digits: 2, type: 'number'},
+        {field: 'discountPromotion', digits: 2, type: 'number'},
+        {field: 'whName'},
+        {field: 'outGoingQuantity', type: 'number', digits: 0, dataType: 'number', sum: true},
+        {field: 'outQuantity', type: 'number', digits: 0, dataType: 'number', sum: true},
+        {field: 'rejectQuantity', type: 'number', digits: 0, dataType: 'number', sum: true},
+        {field: 'usedLocation'},
+        {field: 'outStatusString', type: 'number', digits: 2, sum: true},
+        {field: 'skuTypeName',},
+        {field: 'promotionTypeName'},
+        {field: 'activityName'},
+        {field: 'promotionName'},
+        {field: 'promotionPriceTypeName'},
+        {field: 'nonStandardArea'},
+        {field: 'skuWeight', type: 'number', digits: 2, sum: true},
+        {field: 'skuVolume', type: 'number', digits: 2, sum: true},
+        {field: 'flgInstalled', type: 'switch'},
+        {field: 'flgGift', type: 'switch'},
+        {field: 'flgDesign', type: 'switch'},
+        {field: 'nonStandardCode'},
+        {field: 'nonstandardRemarks'},
+        {field: 'remarks'},
+      ],
+      tableDataTitle_returnDetail: [
+        {field: 'skuModel'},
+        {field: 'skuName'},
+        {field: 'skuCode'},
+        {field: 'spuCode'},
+        {field: 'rejectQuantity', digits: 0, type: 'number', sum: true},
+        {field: 'rejectAmount', type: 'number', digits: 2, sum: true},
+        {field: 'skuWeight', type: 'number', digits: 2, sum: true},
+        {field: 'skuVolume', type: 'number', digits: 2, sum: true},
+        {field: 'remarks'},
+      ],
+      tableDataTitle_refundDetail: [
+        {field: 'refundNo'},
+        {field: 'refundStatus'},
+        {field: 'erpRefundTypeName'},
+        {field: 'erpRefundNo'},
+        {field: 'erpRefundAmount', digits: 2, type: 'number', sum: true},
+        {field: 'applyAmount', type: 'number', digits: 2, sum: true},
+        {field: 'refundAmount', type: 'number', digits: 2, sum: true},
+        {field: 'cancelAmount', type: 'number', digits: 2, sum: true},
+        {field: 'settlementTypeName'},
+        {field: 'erpApvResult'},
+        {field: 'erpApvResultTime'},
+        {field: 'erpApvResultMsg'},
+        {field: 'remarks'},
+      ],
+      tableDataTitle_collectionDetail: [
+        {field: 'receiptNo'},
+        {field: 'docCode'},
+        {field: 'sumAmount', type: 'number', digits: 2, sum: true},
+        {field: 'settlementTypeName'},
+        {field: 'apvResult'},
+        {field: 'erpPushStatusName'},
+        {field: 'erpPushResult'},
+        {field: 'makingUserName'},
+        {field: 'makingTime'},
+      ],
+      tableDataTitle_erpAmendmentDetail: [
+        {field: 'amdTime'},
+        {field: 'amdOpinion'},
+        {field: 'erpUser'},
+      ],
+      orderId: 0,//查询明细需要的订单id
+      orderType: self.$config.orderType.order,
+      tabsClickDetailVariable: null,//明细tab默认变量
+      detailModel: 'goodsDetail',
+      detailOptions: [{label: self.$t('goodsDetail'), name: 'goodsDetail'}, //货物明细
+        {label: self.$t('collectionDetail'), name: 'collectionDetail'},//收款明细
+        // { label: '排单明细(全部排单)', name: '3' },
+        // { label: '出库明细(部分出库)', name: '4' },
+        // { label: '送装明细(部分送装)', name: '5' },
+        // { label: '定制采购(全部采购)', name: '6' },
+        {label: self.$t('approvalDetail'), name: 'approvalDetail'}, //审批明细
+        // { label: '业务提醒(已办/未办)', name: '8' },
+        {label: self.$t('filesDetail'), name: 'filesDetail'}, //附件明细
+        {label: self.$t('orderErpAmendment'), name: 'orderErpAmendment'}, //修改意见
+        // {label: self.$t('inventory'), name: 'inventory'}, //产品清单
+        // {label: self.$t('designScheme'), name: 'designScheme'}, //设计方案
+        // {label: self.$t('customerMessage'), name: 'customerMessage'}, //客户
+      ],
+      // 查询条件
+      searchCond: {},
+      errMessage: {},
+      businessReminderModel: false,
+      businessFormData: {
+        remindTitle: null,
+        remindUser: null,
+        remindTime: null,
+        remindTypeId: null,
+        remindType: null,
+        remarks: null,
+      },
+      businessRuleInline: {
+        提醒标题: [
+          {required: true, trigger: 'none'}
+        ],
+        提醒人: [
+          {required: true, trigger: 'none'}
+        ],
+        提醒时间: [
+          {required: true, trigger: 'none'}
+        ],
+        业务类型: [
+          {required: true, trigger: 'none'}
+        ]
+      },
+      remindTypeList: [
+        {remindTypeId: 1, name: '潜客跟进'},
+        {remindTypeId: 2, name: '审批提醒'},
+        {remindTypeId: 3, name: '预约送安'},
+        {remindTypeId: 4, name: '欠款催收'},
+      ],
+      searchContent: [
+        {
+          itemCode: '订单单号-文本',
+          itemName: 'orderNo',
+          valueFormat: {code: 'orderNo'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '客户电话-文本',
+          itemName: 'customerPhone',
+          valueFormat: {code: 'customerPhone'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '客户名称-文本',
+          itemName: 'customerName',
+          valueFormat: {code: 'customerName'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '业务部门-文本',
+          itemName: 'orgId',
+          valueFormat: {
+            code: 'orgId',
+            data: self.orgList,
+            valueKey: 'orgId',
+            labelKey: 'orgName',
+          },
+          valueKind: 'M-CHOICE'
+        },
+        {
+          itemCode: '业务员-文本',
+          itemName: 'staffId',
+          valueFormat: {
+            code: 'staffId',
+            data: self.staffList,
+            valueKey: 'userId',
+            labelKey: 'userName',
+          },
+          valueKind: 'M-CHOICE'
+        },
+        {
+          itemCode: '审批状态-下拉',
+          itemName: 'approvalStatus',
+          valueFormat: {
+            code: 'approvalStatusList',
+            data: [
+              {valueKey: '审-通过', flgValid: '通过'},
+              {valueKey: '审-审中', flgValid: '审中'},
+              {valueKey: '审-拒绝', flgValid: '拒绝'},
+              {valueKey: '审-异常', flgValid: '异常'}],
+            valueKey: 'valueKey',
+            labelKey: 'flgValid',
+            default: []
+          },
+          valueKind: 'M-CHOICE'
+        },
+        {
+          itemCode: '收款状态-下拉',
+          itemName: 'receiptStatus',
+          valueFormat: {
+            code: 'receiptStatusList',
+            data: [
+              {valueKey: '收款状态-未收', flgValid: '未收款'},
+              {valueKey: '收款状态-部分', flgValid: '部分收款'},
+              {valueKey: '收款状态-完成', flgValid: '收款完成'}],
+            valueKey: 'valueKey',
+            labelKey: 'flgValid',
+            default: []
+          },
+          valueKind: 'M-CHOICE'
+        },
+        {
+          itemCode: '出库状态-下拉',
+          itemName: 'outStatus',
+          valueFormat: {
+            code: 'outStatusList',
+            data: [
+              {valueKey: '出库状态-未收', flgValid: '未出库'},
+              {valueKey: '出库状态-部分', flgValid: '出库中'},
+              {valueKey: '出库状态-完成', flgValid: '出库完成'}],
+            valueKey: 'valueKey',
+            labelKey: 'flgValid',
+            default: []
+          },
+          valueKind: 'M-CHOICE'
+        },
+        // {
+        //   itemCode: '小区名称-文本',
+        //   itemName: 'addressName',
+        //   valueFormat: {code: 'addressName'},
+        //   valueKind: 'STR'
+        // },
+        {
+          itemCode: '家庭住址-文本',
+          itemName: 'addressFull',
+          valueFormat: {code: 'addressFull'},
+          valueKind: 'STR'
+        },
+        {
+          itemCode: '合同号-文本',
+          itemName: 'contractNo',
+          valueFormat: {code: 'contractNo'},
+          valueKind: 'STR'
+        },
+        // {
+        //   itemCode: '客户来源-文本',
+        //   itemName: 'customerFrom',
+        //   valueFormat: {
+        //     code: 'customerFrom',
+        //     data: self.customerFromList,
+        //     valueKey: 'fromId',
+        //     labelKey: 'fromName',
+        //   },
+        //   valueKind: 'M-CHOICE'
+        // },
+        {
+          itemCode: '送货时间-时间',
+          itemName: 'deliveryTime',
+          valueFormat: {code: 'deliveryTime'},
+          valueKind: 'DATE_RANGE'
+        },
+        {
+          itemCode: '制单时间-时间',
+          itemName: 'makingTime',
+          valueFormat: {
+            code: 'opCreateTime',
+            default: [new Date().addMonths(-1).format('yyyy-MM-dd'), new Date().format('yyyy-MM-dd')]
+          },
+          valueKind: 'DATE_RANGE',
+          required: true,
+        },
+      ],
+      depositModal: false,//收取定金标识
+      depositTitle: this.$t('deposit'),//收取定金弹窗名称
+      ruleInline: {
+        orderNo: [
+          {required: true, trigger: 'none',}
+        ],
+        staffName: [
+          {required: true, trigger: 'none',}
+        ],
+        orgName: [
+          {required: true, trigger: 'none',}
+        ],
+        customerName: [
+          {required: true, trigger: 'none',}
+        ],
+        sumAmount: [
+          {required: true, trigger: 'none', type: 'number'}
+        ],
+        settlementType: [
+          {required: true, trigger: 'none', type: 'number'}
+        ]
+      },
+      depositFormData: {
+        orderNo: null,
+        staffId: null,
+        staffName: null,
+        orgId: null,
+        orgName: null,
+        customerId: null,
+        customerName: null,
+        sumAmount: 0,
+        receivable: 0,
+        settlementType: null,
+        settlementTypeName: null,
+        remarks: '',
+        annexPaths: [],
+      },
+      totalRowIndex: 0, // 总单的当前行序号
+      settlementTypeList: [],
+      dmsStoreModal: false,
+      dmsStoreFlag: false,
+      dmsStoreCode: null,
+      dmsStoreDesignUser: null,
+      dmsStoreDesignUserName: null,
+      dmsStoreDesignRemarks: null,
+      updateSapModal: false,
+      updateSapList: [],
+      // 酷家乐设计的pdf
+      kjlDesignPdf: null,
+      kjlDesignPdfModal: false,
+      //占库查询
+      selectInventoryFlag: false,
+      selectInventoryTableData: [],
+      inventoryColumns: [
+        {field: 'Code'},
+        {field: 'OnlyCode'},
+        {field: 'GoodsName'},
+        {field: 'orderQuantity'},
+        {field: 'occupyQuantity'},
+        {field: 'salesQuantity'},
+      ],
+      //转销售
+      saleInventoryFlag: false,
+      saleInventoryTableData: [],
+      saleInventorytHeight: 400,
+      saleInventoryColumns: [
+        {field: 'Code', type: 'disabled'},
+        {field: 'OnlyCode', type: 'disabled'},
+        {field: 'GoodsName', type: 'disabled'},
+        {field: 'orderQuantity', type: 'disabled'},
+        {field: 'occupyQuantity', type: 'disabled',},
+        {field: 'salesQuantity', type: 'disabled'},
+        {
+          field: 'occupyQuantity1',
+          digits: 2,
+          number: true,
+          type: 'number'
+        },
+      ],
+      saleInventoryFormData: {
+        sumCollectedAmount: 0,
+        isToCrmFlag: true,
+        isToCrm: 1,
+        deliveryTime: null,
+        remarksInside: null,
+        remarks: null,
+      },
+      //万维转出库
+      returnInventoryFlag: false,
+      returnInventoryTableData: [],
+      returnInventorytHeight: 400,
+      returnInventoryColumns: [
+        {field: 'goodsName', type: 'disabled'},
+        {field: 'goodsAmount', type: 'disabled'},
+        {field: 'goodsCode', type: 'disabled'},
+        {field: 'goodsPrice', type: 'disabled'},
+        {field: 'canOutQuantity', type: 'disabled',},
+        {field: 'goodsQuantity', type: 'disabled'},
+        {
+          field: 'occupyQuantity1',
+          digits: 2,
+          number: true,
+          type: 'number'
+        },
+      ],
+      returnInventoryPageInfo: {
+        total: 0,
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      //添加结算方式
+      settlementModal: false,
+      settlementTableData: [],
+      //出库类型
+      outTypeList: [
+        {
+          outTypeId: 1,
+          outTypeName: '安装'
+        },
+        {
+          outTypeId: 2,
+          outTypeName: '仅送货'
+        },
+        {
+          outTypeId: 3,
+          outTypeName: '不处理'
+        }
+      ],
+      returnInventoryOutType: null,
+      //出库类型
+      returnInventoryFormData: {
+        outType: null,
+        estimateDeliveryDate: null,
+        remarks: null,
+      }
+    }
+  },
+
+  methods: {
+    /**
+     * @desc   : 新建
+     * @author : 付斌
+     * @date   : 2024-02-19 9:59
+     */
+    add() {
+      this.$router.push('/sale/order/add');
+    },
+    /**
+     *   @desc   : 计算总和
+     *   @date   : 2022/6/10 14:53
+     *   @author : 付斌
+     */
+    calculationItemAmount(value) {
+
+    },
+    /**
+     *   @desc   : 查询结算方式,根据部门获取结算方式Id
+     *   @date   : 2022/6/9 12:04
+     *   @author : 付斌
+     */
+    selectReceipt() {
+    },
+    /**
+     *   @desc   : 定金表单赋值
+     *   @date   : 2022/7/21 8:48
+     *   @author : 付斌
+     */
+    deposit() {
+
+    },
+    /**
+     *   @desc   : 送审
+     *   @date   : 2022/10/10 10:18
+     *   @author : 付斌
+     */
+    submitForCensorship() {
+    },
+    /**
+     *   @desc   : 定金赋值
+     *   @date   : 2022/7/29 15:04
+     *   @author : 付斌
+     */
+    setDeposit(batchRow) {
+
+    },
+    /**
+     *   @desc   : 过滤结算方式名称
+     *   @date   : 2022/6/16 9:30
+     *   @author : 付斌
+     */
+    filterSettlementType() {
+
+    },
+    /**
+     * @desc   : 定金表单提交
+     * @author : 付斌
+     * @date   : 2024-02-20 15:55
+     */
+    depositSubmitForm() {
+
+    },
+    /**
+     * @desc   : 清空新建form
+     * @author : 付斌
+     * @date   : 2024-02-20 15:55
+     */
+    depositClearForm() {
+
+    },
+    /**
+     * @desc   : 进入编辑页面
+     * @author : 付斌
+     * @date   : 2022/8/9 10:29
+     */
+    edit(row) {
+      this.$router.push('/sale/order/edit/' + row.orderId)
+    },
+    /**
+     * @desc   : 加载数据
+     * @author : 付斌
+     * @date   : 2024-02-20 15:53
+     */
+    initData(currentPage, StringOrderTab) {
+
+    },
+
+    /**
+     * @desc   : 查询数据
+     * @author : 付斌
+     * @date   : 2024-02-20 15:53
+     */
+    getData(StringOrderTab) {
+
+    },
+    /**
+     * @desc   : 根据明细tabs查询订单明细
+     * @author : 付斌
+     * @date   : 2024-02-20 15:53
+     */
+    initDetailData(detailTabString, type) {
+
+    },
+    /**
+     * @desc   : 关注订单
+     * @author : 付斌
+     * @date   : 2024-02-20 15:53
+     */
+    switchFollowOrderChange(value) {
+
+    },
+    /**
+     *   @desc   : 冲正
+     *   @date   : 2022/6/24 16:15
+     *   @author : 付斌
+     */
+    revert() {
+
+    },
+    /***************************列表及其他事件************************************/
+
+    /**
+     * @desc   :分页
+     * @author : 付斌
+     * @date   : 2024-02-20 15:52
+     */
+    pageSizeChange(pageInfo) {
+      this.pageInfo = pageInfo
+      this.getData() // 查询数据
+    },
+    /**
+     * @desc   : 总单行事件选择
+     * @author : 付斌
+     * @date   : 2024-02-20 15:52
+     */
+    selectChangeTable(e) {
+
+    },
+    /**
+     * @desc   : 总单tab切换
+     * @author : 付斌
+     * @date   : 2024-02-20 15:51
+     */
+    tabsClick(val) {
+      //如果切换的tab存在就去根据条件查询
+      if (val) {
+        this.totalTab = val
+      }
+    },
+
+    /***************************设定参数函数************************************/
+
+    /**
+     * @desc   : 打开窗体,进行查询结算方式
+     * @author : 付斌
+     * @date   : 2024-02-20 15:51
+     */
+    handleReceiptVisible(e) {
+    },
+    /**
+     * @desc   : 分页
+     * @author : 付斌
+     * @date   : 2024-02-20 15:48
+     */
+    returnInventoryPageSizeChange(pageInfo) {
+    },
+    /**
+     * @desc   : 转出库保存
+     * @author : 付斌
+     * @date   : 2024-02-20 15:48
+     */
+    returnInventoryOk() {
+
+    },
+    /**
+     * @desc   : 获取结算方式名称
+     * @author : 付斌
+     * @date   : 2024-02-20 15:48
+     */
+    changeSettlement(val, rowIndex) {
+
+    },
+
+    /**
+     * @desc   : 添加结算方式
+     * @author : 付斌
+     * @date   : 2024-02-20 15:48
+     */
+    addSettlement() {
+
+    },
+
+    /**
+     * @desc   : 提交修改的结算方
+     * @author : 付斌
+     * @date   : 2024-02-20 15:48
+     */
+    submitSettlement() {
+
+    },
+
+    /***************************created调用数据接口函数************************************/
+
+  },
+  /**
+   * @desc   : 在实例创建完成后被立即同步调用
+   * @author : 付斌
+   * @date   : 2022/3/3 10:32
+   */
+  created() {
+    this.primaryKey = 'orderId'  // 设置主键Id
+    this.routeObjName = 'order'  // 设置路由名称
+  },
 }
 </script>
 
-<style scoped>
-
-</style>

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio