Browse Source

Merge branch 'v2.0_ch' into v2.0

chenlei 2 months ago
parent
commit
d1c2c24d7a

+ 8 - 8
src/views/business_manage/addBusiness.vue

@@ -3,7 +3,7 @@
     <div class="add-business">
       <!-- 自定义步骤条 -->
       <div class="add-steps">
-        <Steps :activeStep="currentStep" :allowStepClick="currentRoute !== 'addBusiness'"
+        <Steps :activeStep="currentStep"
           @changeActiveStep="changeActiveStep">
         </Steps>
       </div>
@@ -96,7 +96,7 @@
         </div>
       </template>
       <template v-if="currentStep === 2">
-        <div class="second-step-form-wrap" v-if="currentRoute !== 'editBusiness'"">
+        <div class="second-step-form-wrap" v-if="currentRoute !== 'editBusiness'">
           <t-form :data="secondFormData" :rules="rules" ref="formRef" label-width="120px" inline
             class="second-step-form">
             <div class="form-line">
@@ -586,8 +586,7 @@ const deleteRenewal = async (row) => {
 // 编辑续约
 const editRenewal = (row) => {
   renewalDiaTitle.value = "编辑续约";
-  console.log('editRenewal', row);
-  
+
   modifyData.value = {
     id: row.EtaBusinessContractId,
     signDate: row.SigningTime,
@@ -596,15 +595,16 @@ const editRenewal = (row) => {
   showRenewal.value = true;
 };
 
-const handleAddRenewal = ({ signDate, expirationDate }) => {
+const handleAddRenewal = ({ signDate, expirationDate, id }) => {
   // 处理添加续约逻辑
-  businessCustomInterence.addNewContract({
+  businessCustomInterence.editContract({
+      EtaBusinessContractId: id || 0,
       EtaBusinessId: businessId.value,
       SigningTime: signDate,
-      ExpiredTime: expirationDate
+      ExpiredTime: expirationDate,
   }).then(res=>{
       if(res.Ret!==200) return 
-      MessagePlugin.success('添加续约成功')
+      MessagePlugin.success('编辑续约成功')
       showRenewal.value = false
       getTableData()
   })

+ 1 - 1
src/views/business_manage/components/AddRenewal.vue

@@ -82,7 +82,7 @@ const handleSave = async () => {
 const initForm = () => {
   ruleForm.value = { id: 0, signDate: '', expirationDate: '' };
   nextTick(() => {
-    // validateRef.value.resetFields(); // 重置表单验证状态
+    validateRef.value?.reset({ fields: ['signDate', 'expirationDate'] }); // 重置表单验证状态
   });
 };
 

+ 7 - 1
src/views/business_manage/components/ModifySaller.vue

@@ -74,6 +74,12 @@ const changeSaller = (value, {node}) => {
   }
 };
 
+const filterSales = (value, option) => {
+  console.log('filterSales', value, option);
+  
+  // return option.label.includes(value);
+};
+
 const handleSave = async () => {
   const valid = await ruleFormRef.value.validate()
   if (valid !== true) return
@@ -89,7 +95,7 @@ const handleSave = async () => {
 
 const initForm = () => {
   ruleForm.saller = '';
-//   ruleFormRef.value.resetFields();
+  ruleFormRef.value?.reset({ fields: ['saller'] }); // 重置表单验证状态
 };
 
 const handleClose = () => {

+ 1 - 1
src/views/business_manage/components/SetPermission.vue

@@ -114,7 +114,7 @@ watch(
 
 // tree相关
 const onChange = (checked, context) => {
-  // console.info('onChange checked:', checked, 'context:', context);
+  console.info('context:', tree.value.setItem());
   const { node } = context;
   if (node.checked) {
     if (node.data.Children.length) {                    // 如果当前节点有子节点,则把所有子节点的id都加上去  

+ 65 - 104
src/views/etaTrial/etaTrialList.vue

@@ -38,7 +38,7 @@
             <div class="tips">*账号用于登录ETA试用平台:https://exptest.hzinsights.com/</div>
             <div class="right-header">
               <span>已选{{ selectedTotal }}</span>
-              <t-checkbox :indeterminate="isIndeterminate" v-model="isCheckAll" @change="listCheckAllChange" style="margin-left: 40px;">列表全选</t-checkbox>
+              <t-checkbox :indeterminate="indeterminate" v-model="checkAll" @change="handleClickCheckAll" style="margin-left: 40px;">列表全选</t-checkbox>
             </div>
           </template>
         </template>
@@ -59,8 +59,17 @@
       </div>
     </div>
     <div class="table-wrap">
-      <t-table :data="tableData" @sort-change="sortChangeHandle" :selected-row-keys="selectedRowKeys"
-      @select-change="selectionChange" :columns="columnList" ref="dataRef" :bordered="true" :table-layout="'auto'" rowKey="EtaTrialId" v-loading="tableLoading" @select="selectHandles" @select-all="selectAllHandle">
+      <t-table
+      :data="tableData"
+      v-model:selectedRowKeys="selectedRowKeys"
+      @sort-change="tableSelectChange"
+      @select-change="tableSelectChange"
+      :columns="columnList"
+      ref="dataRef"
+      :bordered="true"
+      :table-layout="'auto'"
+      row-key="EtaTrialId"
+      v-loading="tableLoading">
         <!-- <template #approveType="{ row }">
           <span >
             {{ row['approveType'] === 0 ? '申请账号' : '申请启用' }}
@@ -183,10 +192,8 @@ const total = ref(1);
 const isApplyApprovalDialogShow = ref(false);
 const isAddApplyHintShow = ref(false);
 const showDetailDialogShow = ref(false);
-const isIndeterminate = ref(false);
-const isCheckAll = ref(false);
-const isSelectAll = ref(false);
-const selectList = ref([]);
+const indeterminate = ref(false);
+const checkAll = ref(false);
 const choiceIdList = ref([]);
 const tableDataIds = ref([]);
 const isMoveShow = ref(false);
@@ -195,15 +202,17 @@ const moveInfo = reactive({
   salesArr: [], // 销售列表
   selectArr: [], // 已选择的id
 });
-const selectedRowKeys = ref([1]);
+const selectedRowKeys = ref([]);
+const AlltableData = ref([]);
+const cancelKeys = ref([]);
 
 // 计算属性
 const Role = computed(() => sessionStorage.getItem('Role'));
 const selectedTotal = computed(() => {
-  if (isSelectAll.value) {
-    return total.value - selectList.value.length;
+  if (checkAll.value) {
+    return total.value - cancelKeys.value.length;
   } else {
-    return selectList.value.length;
+    return selectedRowKeys.value.length;
   }
 });
 
@@ -260,20 +269,18 @@ const getTableData = async (type) => {
   });
   if (res.Ret !== 200) return;
   const { List, Paging, ApprovalNum } = res.Data;
+  AlltableData.value = [...List, ...AlltableData.value]
   tableData.value = List || [];
   total.value = Paging.Totals;
   approvalNum.value = ApprovalNum || 0;
   tableLoading.value = false;
-  if (tableData.value.length > 0) {
-    tableDataIds.value = tableData.value.map(it => it.EtaTrialId);
-  } else {
-    tableDataIds.value = [];
-  }
-  if (type === 'search') {
-    selectList.value = [];
-    listCheckAllChange(false);
-  } else {
-    adjustSelection();
+  if(checkAll.value){
+    //全选了去除之前记录被手动取消勾选的项
+    tableData.value.forEach(item=>{
+      if(!selectedRowKeys.value.includes(item.EtaTrialId)&&!cancelSelectRowKeys.includes(item.EtaTrialId)){
+        selectedRowKeys.value.push(item.EtaTrialId)
+      }
+    })
   }
 };
 
@@ -316,90 +323,43 @@ const handleCurrentChange = (pageNo) => {
   getTableData();
 };
 
-const adjustSelection = () => {
-  if (!isSelectAll.value) {
-    tableData.value.forEach(it => {
-      if (selectList.value.includes(it.EtaTrialId)) {
-        // toggleRowSelection(it, true);
-      }
-    });
-  } else {
-    tableData.value.forEach(it => {
-      if (!selectList.value.includes(it.EtaTrialId)) {
-        // toggleRowSelection(it, true);
-      }
-    });
-  }
-};
-
-const listCheckAllChange = (value) => {
-  selectList.value = [];
-  isSelectAll.value = value;
-  // clearSelection();
-  if (value) {
-    // toggleAllSelection();
-  }
-};
-
-const selectionChange = (selection) => {
-  setTimeout(() => {
-    const duplicateArr = Array.from(new Set(selectList.value));
-    if ((duplicateArr.length === total.value && !isSelectAll.value) || (duplicateArr.length === 0 && isSelectAll.value)) {
-      isCheckAll.value = true;
-      isIndeterminate.value = false;
-    } else if ((duplicateArr.length === 0 && !isSelectAll.value) || (duplicateArr.length === total.value && isSelectAll.value)) {
-      isCheckAll.value = false;
-      isIndeterminate.value = false;
-    } else {
-      isCheckAll.value = false;
-      isIndeterminate.value = true;
-    }
-  }, 1);
-};
-
-const selectHandles = (selection, row) => {
-  let check = false;
-  if (selection.some(it => it.EtaTrialId === row.EtaTrialId)) {
-    if (isSelectAll.value) {
-      check = false;
+let cancelSelectRowKeys=[]//取消选择的keys
+function tableSelectChange(value, ctx) {
+  
+  if (ctx.type === 'uncheck') {
+    if (ctx.currentRowKey === 'CHECK_ALL_BOX') {
+      tableData.value.forEach(i => cancelSelectRowKeys.push(i.EtaTrialId));
     } else {
-      check = true;
+      cancelSelectRowKeys.push(ctx.currentRowKey);
     }
-  } else {
-    if (isSelectAll.value) {
-      check = true;
+    indeterminate.value = selectedRowKeys.value.length > 0;
+    checkAll.value = selectedRowKeys.value.length === 0 ? false : checkAll.value;
+  } else if (ctx.type === 'check') {
+    indeterminate.value = true;
+    if (selectedRowKeys.value.length === total.value) {
+      checkAll.value = true;
+      indeterminate.value = false;
+      cancelSelectRowKeys = [];
     } else {
-      check = false;
+      cancelSelectRowKeys = cancelSelectRowKeys.filter(i => selectedRowKeys.value.includes(i));
     }
   }
-  if (check) {
-    selectList.value.push(row.EtaTrialId);
-  } else {
-    selectList.value = selectList.value.filter(it => it !== row.EtaTrialId);
-  }
-};
+  cancelKeys.value = cancelSelectRowKeys
+}
 
-const selectAllHandle = (selection) => {
-  let check = false;
-  if (selection && selection.length > 0) {
-    if (isSelectAll.value) {
-      check = false;
-    } else {
-      check = true;
-    }
-  } else {
-    if (isSelectAll.value) {
-      check = true;
-    } else {
-      check = false;
-    }
-  }
-  if (check) {
-    selectList.value = [...selectList.value, ...tableDataIds.value];
-  } else {
-    selectList.value = selectList.value.filter(it => !tableDataIds.value.includes(it));
+function handleClickCheckAll(check) {
+  if(!check&&indeterminate.value){
+    selectedRowKeys.value=[...selectedRowKeys.value,...cancelSelectRowKeys]
+    cancelSelectRowKeys=[]
+    indeterminate.value = false;
+    checkAll.value=true
+    return
   }
-};
+  indeterminate.value = false;
+  selectedRowKeys.value = check ? tableData.value.map(item => item.EtaTrialId) : [];
+  cancelSelectRowKeys = [];
+  cancelKeys.value = cancelSelectRowKeys
+}
 
 const getApplyInfo = (type, data) => {
   const temp = { applyType: 1, applyData: [] };
@@ -482,7 +442,7 @@ const moveConfirm = (data) => {
   const params = {
     currentSellerId,
     EtaTrialIdList: selectArr,
-    IsCheckAll: type === 1 ? false : isSelectAll.value,
+    IsCheckAll: type === 1 ? false : checkAll.value,
     CurrentSellerName: findElementByAdminId(moveInfo.salesArr, currentSellerId).RealName,
   };
   etaTrialInterence.accountTransfer(params).then(res => {
@@ -520,23 +480,24 @@ const Move = (row) => {
 };
 
 const batchMove = () => {
-  if (selectList.value.length === 0) {
+  if (selectedRowKeys.value.length === 0) {
     MessagePlugin.warning('请至少选择一个客户');
     return;
   }
   moveInfo.type = 2;
-  moveInfo.selectArr = selectList.value;
+  moveInfo.selectArr = selectedRowKeys.value;
   isMoveShow.value = true;
 };
 
 const batchOperate = async () => {
-  if (getMobileList(tableData.value, selectList.value).length === 0) {
+
+  if ([...new Set(getMobileList(AlltableData.value, selectedRowKeys.value))].length === 0) {
     MessagePlugin.warning('请至少选择一个客户');
     return;
   }
   const res = await etaTrialInterence.applyEnable({
-    MobileList: getMobileList(tableData.value, selectList.value),
-    IsCheckAll: isSelectAll.value,
+    MobileList: [...new Set(getMobileList(AlltableData.value, checkAll.value ? cancelSelectRowKeys : selectedRowKeys.value))],
+    IsCheckAll: checkAll.value,
   });
   if (res.Ret !== 200) return;
   getTableData();

+ 1 - 1
src/views/training/modifyVideoPage.vue

@@ -39,7 +39,7 @@
             <t-form-item label="上传视频" name="VideoUrl">
               <div style="display: block;">
                   <t-upload accept=".mp4" 
-                      :request-method="handleUploadVideo" :show-file-list="false" :disabled="isVideoUploading">
+                      :request-method="handleUploadVideo" theme="custom" :show-file-list="false" :disabled="isVideoUploading">
                       <t-button theme="primary" :loading="isVideoUploading">点击上传</t-button>
                       <span style="color:#999999;margin-left: 5px;" @click.stop>仅支持mp4格式</span>
                   </t-upload>