Bladeren bron

feat(销售管理): 添加排序功能并优化联系人表单

- 在库存表格组件中添加排序列及相关功能
- 为联系人表单增加对象类型选择及相应字段动态显示
- 优化联系人表单验证规则和布局
- 添加表格汇总功能
liujt 1 maand geleden
bovenliggende
commit
bc210a3e6e

+ 23 - 0
src/BIZComponents/inventoryTable.vue

@@ -123,6 +123,16 @@
           </el-button>
         </el-form-item>
       </template>
+      <template v-slot:sortCode="scope">
+        <el-form-item prop="sortCode">
+          <el-input
+            v-model="scope.row.sortCode"
+            placeholder="请输入"
+            type="number"
+            min="1"
+          ></el-input>
+        </el-form-item>
+      </template>
       <template v-slot:entrustedEnterpriseId="scope">
         <el-form-item prop="entrustedEnterpriseId">
           <el-select
@@ -1174,6 +1184,10 @@
       showSummary: {
         type: Boolean,
         default: false
+      },
+      showSortLine: {
+        type: Boolean,
+        default: false
       }
     },
     data() {
@@ -1249,6 +1263,15 @@
             align: 'center',
             fixed: 'left'
           },
+          {
+            minWidth: 100,
+            prop: 'sortCode',
+            slot: 'sortCode',
+            label: '排序',
+            isNone: !this.showSortLine,
+            showOverflowTooltip: true,
+            align: 'center'
+          },
           {
             minWidth: 200,
             prop: 'orderNo',

+ 13 - 0
src/BIZComponents/inventoryTableDetails.vue

@@ -238,6 +238,10 @@
       showSummary: {
         type: Boolean,
         default: false
+      },
+      showSortLine: {
+        type: Boolean,
+        default: false
       }
     },
     data() {
@@ -278,6 +282,15 @@
               return !row.sendTotalCount;
             }
           },
+          {
+            minWidth: 100,
+            prop: 'sortCode',
+            slot: 'sortCode',
+            label: '排序',
+            isNone: !this.showSortLine,
+            showOverflowTooltip: true,
+            align: 'center'
+          },
           {
             minWidth: 200,
             prop: 'orderNo',

+ 7 - 1
src/views/purchasingManage/supplierManage/components/contactDetailDialog.vue

@@ -59,9 +59,14 @@
                 <el-input v-model="form.phone" disabled></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="8">
+              <el-form-item label="对象类型:" prop="objectTypeStr">
+                <el-input v-model="form.objectTypeStr" disabled></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="8">
               <el-form-item
-                label="统一社会信用代码:"
+                :label="form.objectType == 1 ? '统一社会信用代码' : '身份证号'"
                 prop="unifiedSocialCreditCode"
                 class="form_item_label"
               >
@@ -1597,6 +1602,7 @@
       },
       async _getById(id) {
         const data = await contactDetail(id);
+        data.base.objectTypeStr = data.base.objectType == 1 ? '企业' : '个人';
         this.form = data.base || {};
         this.otherForm = data.other || {};
         this.tableBankData = data.bankList || [];

+ 31 - 4
src/views/saleManage/contact/components/addContactDialog.vue

@@ -39,6 +39,31 @@
                 />
               </el-form-item>
             </el-col>
+            <el-col :span="8">
+              <el-form-item
+                label="对像类型	"
+                prop="objectType"
+              >
+                <el-select
+                  v-model="form.objectType"
+                  clearable
+                  style="width: 100%"
+                >
+                  <el-option
+                    :key="1"
+                    label="企业"
+                    :value="1"
+                  >
+                  </el-option>
+                  <el-option
+                    :key="2"
+                    label="个人"
+                    :value="2"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
             <el-col :span="8">
               <el-form-item label="名称" prop="name">
                 <el-input
@@ -49,9 +74,10 @@
                 ></el-input>
               </el-form-item>
             </el-col>
+            
             <el-col :span="8">
               <el-form-item
-                label="统一信用代码	"
+                :label="form.objectType == 1 ? '统一信用代码' : '身份证号'"
                 prop="unifiedSocialCreditCode"
               >
                 <el-input
@@ -867,6 +893,7 @@
     },
     data() {
       let formDef = {
+        objectType: 1,
         address: '',
         addressId: '',
         addressName: '',
@@ -1053,7 +1080,7 @@
           name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
           unifiedSocialCreditCode: [
             {
-              required: true,
+              required: false,
               message: '请输入统一社会信用代码',
               trigger: 'blur'
             }
@@ -1074,7 +1101,7 @@
           //   { required: true, message: '请输入结算方式', trigger: 'blur' }
           // ],
           address: [
-            { required: true, message: '请选择地址', trigger: 'change' }
+            { required: false, message: '请选择地址', trigger: 'change' }
           ]
         },
         options: {
@@ -1119,7 +1146,7 @@
             prop: 'mobilePhone',
             slot: 'mobilePhone',
             action: 'mobilePhone',
-            headerSlot: 'mobilePhoneHeader',
+            // headerSlot: 'mobilePhoneHeader',
             align: 'center'
           },
           {

+ 7 - 1
src/views/saleManage/contact/components/darwerComponents/contactInfo.vue

@@ -21,10 +21,15 @@
           <el-input v-model="form.name" disabled></el-input>
         </el-form-item>
       </el-col>
+      <el-col :span="8">
+        <el-form-item label="对象类型:" prop="objectTypeStr">
+          <el-input v-model="form.objectTypeStr" disabled></el-input>
+        </el-form-item>
+      </el-col>
       <el-col :span="8">
         <el-form-item
           class="form_item_label"
-          label="统一信用代码"
+          :label="form.objectType == 1 ? '统一信用代码' : '身份证号'"
           prop="unifiedSocialCreditCode"
         >
           <el-input v-model="form.unifiedSocialCreditCode" disabled></el-input>
@@ -287,6 +292,7 @@ export default {
   },
   methods: {
     async init(row) {
+      row.base.objectTypeStr = row.base.objectType == 1 ? '企业' : '个人';
       this.form = row.base;
       this.otherForm=row.other
       if (this.form.level) {

+ 1 - 0
src/views/saleManage/saleOrder/components/addDialogNew.vue

@@ -551,6 +551,7 @@
         :isIncreaseTotalWeight="true"
         :showSummary="true"
         :defTaxRate="13"
+        :showSortLine="true"
       ></inventoryTable>
       <headerTitle
         title="类型清单"

+ 1 - 0
src/views/saleManage/saleOrder/components/darwerComponents/saleOrderInfo.vue

@@ -318,6 +318,7 @@
       :isIncreaseTotalWeight="true"
       :showSummary="true"
       :cacheKeyUrl="cacheKeyUrl"
+      :showSortLine="true"
     ></inventoryTabledetail>
     <headerTitle title="类型清单" v-if="form.needProduce == 4"></headerTitle>
     <typeList

+ 10 - 0
src/views/saleManage/saleOrder/index.vue

@@ -46,6 +46,8 @@
               :page-size="20"
               @columns-change="handleColumnChange"
               :cache-key="cacheKeyUrl"
+              show-summary
+              :summary-method="getSummaries"
             >
               <!-- 表头工具栏 -->
               <template v-slot:toolbar>
@@ -403,6 +405,7 @@
 </template>
 
 <script>
+import { getSummaries } from '@/utils/util.js';
 import searchTable from './components/searchTable.vue';
 import addDialog from './components/addDialog.vue';
 import addDialogNew from './components/addDialogNew.vue';
@@ -947,6 +950,13 @@ export default {
     }
   },
   methods: {
+    getSummaries(param) {
+        return getSummaries(
+          param,
+          ['productCount', 'sendTotalCount', 'outboundTotalCount', ''],
+          ' '
+        );
+      },
     async getInfo() {
       try {
         const res = await listOrganizations(); // 假设接口直接返回部门数组(如用户提供的示例数据)