asd26269546 1 год назад
Родитель
Сommit
4e7cec14e8

+ 1 - 2
src/components/byTable/index.vue

@@ -742,14 +742,13 @@ export default defineComponent({
   ul {
     position: absolute;
     left: 0;
-
     top: 32px;
     padding: 0;
     margin: 0;
     z-index: 100;
     display: none;
     white-space: nowrap;
-    min-width: 80px;
+    min-width: 100%;
     li {
       list-style: none;
       font-size: 12px;

+ 0 - 3
src/components/process/Contract.vue

@@ -1700,9 +1700,6 @@ const changeShroffAccount = (val) => {
         formData.data.swiftCode = data[0].swiftCode;
         formData.data.beneficiaryAddress = data[0].beneficiaryAddress;
       }
-      
-      
-      
     }
   }
 };

+ 1 - 1
src/components/process/ContractAlteration.vue

@@ -1092,7 +1092,7 @@ const getDecisionAids = () => {
           </tr>
         </thead>
         <tbody>`;
-      formData.data.contractProductList.forEach((item) => {
+      res.contractProductList.forEach((item) => {
         tableHtml += `<tr>
           <td>${item.productCnName}</td >
           <td>${item.productName}</td>

+ 19 - 1
src/views/index.vue

@@ -64,7 +64,11 @@
 						:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
 						>
 						<el-table-column prop="deptName" label="名称" />
-						<el-table-column prop="onLineTime" label="在线时长" />
+						<el-table-column prop="onLineTime" label="在线时长">
+							<template #default="scope">
+								{{ scope.row.onLineTime }}h
+							</template>
+						</el-table-column>
 					</el-table>
 				</div>
 			</div>
@@ -178,6 +182,10 @@ const getData = (() => {
 		pageSize:5,
 	}).then(res=>{
 		onLineInfoData.value = res.data.deptList
+		onLineInfoData.value.unshift({
+			deptName:'我的时长',
+			onLineTime:res.data.onLineTime
+		})
 		//递归将数据内的deptList 改成 children
 		const changeData = (data) => {
 			data.forEach(item => {
@@ -185,6 +193,16 @@ const getData = (() => {
 					item.children = item.deptList
 					changeData(item.deptList)
 				}
+				if(item.userList && item.userList.length > 0) {
+
+					item.children = item.children.concat(item.userList.map(item=> {
+						return {
+							...item,
+							deptName:item.userName,
+							onLineTime:item.onLineTime
+						}
+					}))
+				}
 			})
 		}
 		changeData(onLineInfoData.value)

+ 5 - 1
src/views/process/dealWith/backlog.vue

@@ -255,9 +255,13 @@ const getUrlObj = {
 }
 const getList = async (req) => {
 	sourceList.value.pagination = { ...sourceList.value.pagination, ...req }
+	let reqData = {
+		...sourceList.value.pagination,
+	}
+	reqData.status = ''
 	loading.value = true
 	proxy
-		.post( getUrlObj[sourceList.value.pagination.status], sourceList.value.pagination)
+		.post( getUrlObj[sourceList.value.pagination.status], reqData)
 		.then((message) => {
 			console.log(message)
 			sourceList.value.data = message.rows

+ 17 - 12
src/views/process/dealWith/index.vue

@@ -152,7 +152,7 @@ const config = computed(() => {
 				return [
 					{
                         attrs: {
-                            label: row.status == 0 || row.status == 1 ? '办理' : '查看',
+                            label: row.status == 0 || row.status == 1 ? '查看' : '查看',
                             type: 'primary',
                             text: true,
                             bg: true,
@@ -160,17 +160,18 @@ const config = computed(() => {
                         },
                         el: 'button',
                         click() {
+							proxy.$router.push({
+								path: "/platform_manage/process/processApproval",
+								query: {
+									flowKey: row.flowKey,
+									id: row.id,
+									processType:20,
+									version:row.version
+								},
+							});
+							return
 							if(row.status != 1 && row.status != 0) {
-								proxy.$router.push({
-									path: "/platform_manage/process/processApproval",
-									query: {
-										flowKey: row.flowKey,
-										id: row.id,
-										processType:20,
-										version:row.version
-									},
-								});
-								return
+								
 							}
 							proxy.post('flowExample/getApprovalRecord',{id:row.id}).then(res=>{
 								if(res.recordList.length > 0) {
@@ -268,8 +269,12 @@ const getUrlObj = {
 const getList = async (req) => {
 	sourceList.value.pagination = { ...sourceList.value.pagination, ...req }
 	loading.value = true
+	let reqData = {
+		...sourceList.value.pagination,
+	}
+	reqData.status = ''
 	proxy
-		.post( getUrlObj[sourceList.value.pagination.status], sourceList.value.pagination)
+		.post( getUrlObj[sourceList.value.pagination.status], reqData)
 		.then((message) => {
 			console.log(message)
 			sourceList.value.data = message.rows

+ 96 - 86
src/views/process/processApproval/auxiliary.vue

@@ -1,104 +1,114 @@
 <template>
-	<div class="auxiliary">
-		<el-collapse>
-			<el-collapse-item :title="i.label" v-for="(i,index) in data" :key='i.label' :name="index">
-				<ul>
-					<li v-for="(j,jindex) in i.data" :key="jindex">
-						<div class="list-box" v-for="n in j" :key='n.label' :style="n.num ? `width:${100/n.num}%` : ''">
-							<div class="label">{{n.label}}:</div>
-							<div 
-								class="value" 
-								:class="n.fn ? 'color-bl' : ''" 
-								@click="n.fn ? n.fn(n) : ''"
-								:style="n.style || ''">
-								{{n.value}}
-							</div>
-						</div>
-					</li>
-				</ul>
-			</el-collapse-item>
-		</el-collapse>
-	</div>
+  <div class="auxiliary">
+    <el-collapse v-model="activeNames">
+      <el-collapse-item
+        :title="i.label"
+        v-for="(i, index) in data"
+        :key="i.label"
+        :name="index"
+      >
+        <ul>
+          <li v-for="(j, jindex) in i.data" :key="jindex">
+            <div
+              class="list-box"
+              v-for="n in j"
+              :key="n.label"
+              :style="n.num ? `width:${100 / n.num}%` : ''"
+            >
+              <div class="label">{{ n.label }}:</div>
+              <div
+                class="value"
+                :class="n.fn ? 'color-bl' : ''"
+                @click="n.fn ? n.fn(n) : ''"
+                :style="n.style || ''"
+              >
+                {{ n.value }}
+              </div>
+            </div>
+          </li>
+        </ul>
+      </el-collapse-item>
+    </el-collapse>
+  </div>
 </template>
 <script setup>
-import { defineProps } from 'vue'
-const { proxy } = getCurrentInstance()
+import { computed, defineProps } from "vue";
+const { proxy } = getCurrentInstance();
 defineProps({
-	data: {
-		type: Array,
-		default: [],
-	},
-})
-console.log(proxy.data)
+  data: {
+    type: Array,
+    default: [],
+  },
+});
+const activeNames = computed(() => proxy.data.map((x, index) => index));
 </script>
 <style>
-.auxiliary .el-collapse-item{
-	border:1px solid #dddddd;
-	margin-bottom:20px;
+.auxiliary .el-collapse-item {
+  border: 1px solid #dddddd;
+  margin-bottom: 20px;
 }
-.auxiliary .el-collapse-item__header{
-	border:none !important;
-	padding-left: 20px;
-	font-size: 14px;
-	font-weight: bold;
+.auxiliary .el-collapse-item__header {
+  border: none !important;
+  padding-left: 20px;
+  font-size: 14px;
+  font-weight: bold;
 }
-.el-collapse-item__wrap{
-	border:none !important;
+.el-collapse-item__wrap {
+  border: none !important;
 }
-.el-collapse-item__wrap{
-	padding: 0 20px;
+.el-collapse-item__wrap {
+  padding: 0 20px;
 }
-.el-collapse-item__content{
-	padding-bottom:10px;
+.el-collapse-item__content {
+  padding-bottom: 10px;
 }
 
-.el-collapse{
-	border:none;
+.el-collapse {
+  border: none;
 }
 </style>
 <style lang="scss">
 .auxiliary {
-	ul {
-		padding: 0;
-		margin: 0;
-		li {
-			list-style: none;
-			padding: 15px 15px;
-			background: #f1f1f1;
-			overflow: hidden;
-			margin-bottom: 10px;
-			border-radius: 2px 2px 2px 2px;
-			.list-box {
-				float: left;
-				width: 50%;
-				padding: 0 5px;
-				box-sizing: border-box;
-				.label {
-					width: 70px;
-					text-align: right;
-					color: #666;
-					font-size: 14px;
-					float: left;
-					line-height: 30px;
-				}
-				.value {
-					flex: 1;
-					float: left;
-					font-size: 14px;
-					line-height: 30px;
-					color: #333;
-					width: calc(100% - 70px);
-				}
-				.color-bl{
-					color: #0084FF;
-					cursor: pointer;
-				}
-			}
-		}
-		li:hover{
-			background: #EFF6FF;
-		}
-	
-	}
+  ul {
+    padding: 0;
+    margin: 0;
+    li {
+      list-style: none;
+      padding: 15px 15px;
+      background: #f1f1f1;
+      overflow: hidden;
+      margin-bottom: 10px;
+      border-radius: 2px 2px 2px 2px;
+      .list-box {
+        float: left;
+        width: 50%;
+        padding: 0 5px;
+        box-sizing: border-box;
+        .label {
+          width: 70px;
+          text-align: right;
+          color: #666;
+          font-size: 14px;
+          float: left;
+          line-height: 30px;
+        }
+        .value {
+          flex: 1;
+          float: left;
+          font-size: 14px;
+          line-height: 30px;
+          color: #333;
+          width: calc(100% - 70px);
+        }
+        .color-bl {
+          color: #0084ff;
+          cursor: pointer;
+        }
+      }
+    }
+    li:hover {
+      background: #eff6ff;
+    }
+  }
 }
 </style>

+ 27 - 1
src/views/process/processApproval/index.vue

@@ -160,8 +160,10 @@
       </div>
     </div>
     <div class="right-card">
+      
       <el-tabs v-model="activeName" class="demo-tabs">
         <el-tab-pane label="审批记录" name="first">
+          
           <ul class="flow-chart">
             <li
               v-for="item in recordList"
@@ -207,7 +209,18 @@
               </div>
               <div class="line"></div>
             </li>
+            
           </ul>
+          <div>
+            <el-button
+              type="primary"
+              :loading="btnLoading"
+              style="margin: 20px 150px;"
+              v-if="isRevocation"
+              @click="handleSubmit(3)"
+              >撤回</el-button
+            >
+          </div>
         </el-tab-pane>
         <el-tab-pane
           label="决策辅助"
@@ -718,6 +731,7 @@ const fileObj = ref({});
 const approvalRecordData = ref({
   buttonInfoList: [],
 });
+let isRevocation = ref(false);
 const getRecords = (_id) => {
   if (_id) {
     proxy
@@ -731,6 +745,16 @@ const getRecords = (_id) => {
         fileIds.value = res.recordList.map((item) => {
           return item.flowExampleDetailId;
         });
+        for (let i = 0; i < res.recordList.length; i++) {
+          const element = res.recordList[i];
+          if(element.status == 2) {
+            // 2为审批中
+            if(element.processedUser === res.recordList[i - 1].processedUser) {
+              // 当前审批人和上一条审批人相同,开启撤回开关
+              isRevocation.value = true;
+            }
+          }
+        }
         proxy
           .post("fileInfo/getList", { businessIdList: fileIds.value })
           .then((res2) => {
@@ -821,9 +845,11 @@ onMounted(async () => {
     padding: 0 20px 20px;
     width: 400px;
     box-sizing: border-box;
+    height: calc(100vh - 130px);
+    overflow: auto;
     .flow-chart {
       overflow: auto;
-      height: calc(100vh - 200px);
+      //height: calc(100vh - 200px);
       padding: 0;
       margin: 0;
       li {

+ 160 - 83
src/views/salesMange/shipmentMange/document/index.vue

@@ -681,20 +681,82 @@
             </div>
           </div>
           <div style="height: 16px"></div>
+          <!-- 装箱单 -->
           <table
             class="three"
             cellspacing="0"
             cellpadding="0"
             border="0"
             style="width: 100%; border-bottom: 0"
+            v-if="[1].includes(openStatus)"
           >
             <thead>
               <tr>
-                <td style="width: 100px" v-if="[1].includes(openStatus)">
-                  箱号
+                <td style="width: 100px">
+                  项目
+                  <br />
+                  ITEM NO.
+                </td>
+                <td>
+                  货物描述
                   <br />
-                  Case NO.
+                  DESCRIPTION OF GOODS
+                </td>
+
+                <td style="width: 100px">
+                  单位
+                  <br />
+                  UNIT
+                </td>
+
+                <td style="width: 100px; border-right: 0">
+                  数量
+                  <br />
+                  QUANTITY
+                  <br />
+                  (SET/PCS)
                 </td>
+              </tr>
+            </thead>
+            <!-- 其他 -->
+            <tbody
+              v-if="
+                printDetails.documentsProducts &&
+                printDetails.documentsProducts.length > 0
+              "
+            >
+              <tr
+                v-for="(item, index) in printDetails.documentsProducts"
+                :key="index"
+              >
+                <td style="text-align: center">{{ index + 1 }}</td>
+                <td>
+                  <div style="text-align: center">{{ item.describes }}</div>
+                  <div style="text-align: center">{{ item.subDescribe }}</div>
+                  <div style="text-align: center">
+                    HS CODE: {{ item.customsCode }}
+                  </div>
+                </td>
+                <td style="text-align: center">
+                  {{ dictValueLabel(item.productUnit, productUnit) }}
+                </td>
+                <td style="text-align: center; border-right: 0">
+                  {{ item.quantity }}
+                </td>
+              </tr>
+            </tbody>
+          </table>
+          <!-- 商业发票、销售确认书 -->
+          <table
+            class="three"
+            cellspacing="0"
+            cellpadding="0"
+            border="0"
+            style="width: 100%; border-bottom: 0"
+            v-if="[2, 3].includes(openStatus)"
+          >
+            <thead>
+              <tr>
                 <td style="width: 100px" v-if="[2, 3].includes(openStatus)">
                   项目
                   <br />
@@ -719,18 +781,7 @@
                   <br />
                   (SET/PCS)
                 </td>
-                <template v-if="[1].includes(openStatus)">
-                  <td style="width: 100px">
-                    净重
-                    <br />
-                    N.W./ KG
-                  </td>
-                  <td style="width: 100px; border-right: 0">
-                    毛重
-                    <br />
-                    G.W./ KG
-                  </td>
-                </template>
+
                 <template v-if="[2, 3].includes(openStatus)">
                   <td style="width: 100px">
                     单价
@@ -759,59 +810,6 @@
                 </template>
               </tr>
             </thead>
-            <!-- 装箱单 -->
-            <tbody
-              v-if="
-                printDetails.packDetailList &&
-                printDetails.packDetailList.length > 0 &&
-                [1].includes(openStatus)
-              "
-            >
-              <template
-                v-for="(item, index) in printDetails.packDetailList"
-                :key="index"
-              >
-                <tr
-                  v-for="(sonItem, sonIndex) in item.documentsProductList"
-                  :key="sonIndex"
-                >
-                  <td
-                    style="text-align: center"
-                    :rowspan="item.documentsProductList.length"
-                    v-if="sonIndex === 0"
-                  >
-                    {{ index + 1 }}
-                  </td>
-                  <td>
-                    <div style="text-align: center">
-                      {{ sonItem.describes }}
-                    </div>
-                    <div style="text-align: center">
-                      {{ sonItem.subDescribe }}
-                    </div>
-                    <div style="text-align: center">
-                      HS CODE: {{ sonItem.customsCode }}
-                    </div>
-                  </td>
-
-                  <td style="text-align: center">{{ sonItem.quantity }}</td>
-                  <td
-                    :rowspan="item.documentsProductList.length"
-                    style="text-align: center"
-                    v-if="sonIndex === 0"
-                  >
-                    {{ item.netWeight }}
-                  </td>
-                  <td
-                    :rowspan="item.documentsProductList.length"
-                    style="text-align: center; border-right: 0"
-                    v-if="sonIndex === 0"
-                  >
-                    {{ item.roughWeight }}
-                  </td>
-                </tr>
-              </template>
-            </tbody>
             <!-- 其他 -->
             <tbody
               v-if="
@@ -836,20 +834,7 @@
                   {{ dictValueLabel(item.productUnit, productUnit) }}
                 </td>
                 <td style="text-align: center">{{ item.quantity }}</td>
-                <td
-                  :rowspan="printDetails.documentsProducts.length"
-                  style="text-align: center"
-                  v-if="index === 0 && [1].includes(openStatus)"
-                >
-                  {{ printDetails.sumNetWeight }}
-                </td>
-                <td
-                  :rowspan="printDetails.documentsProducts.length"
-                  style="text-align: center; border-right: 0"
-                  v-if="index === 0 && [1].includes(openStatus)"
-                >
-                  {{ printDetails.sumRoughWeight }}
-                </td>
+
                 <td
                   style="text-align: center"
                   v-if="[2, 3].includes(openStatus)"
@@ -970,6 +955,7 @@
               </tr>
             </template>
           </table>
+          <!-- 装箱单 -->
           <div v-if="[1].includes(openStatus)">
             <div style="font-weight: 700; padding: 4px 0">
               THE PACK FOR ABOVE CARGO ARE AS BELOWING SHOWS:
@@ -980,6 +966,97 @@
               cellpadding="0"
               border="0"
               style="width: 100%; border-bottom: 0"
+            >
+              <thead>
+                <tr>
+                  <td style="width: 100px">
+                    箱号
+                    <br />
+                    Case NO.
+                  </td>
+
+                  <td>
+                    货物描述
+                    <br />
+                    DESCRIPTION OF GOODS
+                  </td>
+                  <td style="width: 100px">
+                    数量
+                    <br />
+                    QUANTITY
+                    <br />
+                    (SET/PCS)
+                  </td>
+                  <td style="width: 100px">
+                    净重
+                    <br />
+                    N.W./ KG
+                  </td>
+                  <td style="width: 100px; border-right: 0">
+                    毛重
+                    <br />
+                    G.W./ KG
+                  </td>
+                </tr>
+              </thead>
+              <tbody
+                v-if="
+                  printDetails.packDetailList &&
+                  printDetails.packDetailList.length > 0
+                "
+              >
+                <template
+                  v-for="(item, index) in printDetails.packDetailList"
+                  :key="index"
+                >
+                  <tr
+                    v-for="(sonItem, sonIndex) in item.documentsProductList"
+                    :key="sonIndex"
+                  >
+                    <td
+                      style="text-align: center"
+                      :rowspan="item.documentsProductList.length"
+                      v-if="sonIndex === 0"
+                    >
+                      {{ index + 1 }}
+                    </td>
+                    <td>
+                      <div style="text-align: center">
+                        {{ sonItem.describes }}
+                      </div>
+                      <div style="text-align: center">
+                        {{ sonItem.subDescribe }}
+                      </div>
+                      <div style="text-align: center">
+                        HS CODE: {{ sonItem.customsCode }}
+                      </div>
+                    </td>
+
+                    <td style="text-align: center">{{ sonItem.quantity }}</td>
+                    <td
+                      :rowspan="item.documentsProductList.length"
+                      style="text-align: center"
+                      v-if="sonIndex === 0"
+                    >
+                      {{ item.netWeight }}
+                    </td>
+                    <td
+                      :rowspan="item.documentsProductList.length"
+                      style="text-align: center; border-right: 0"
+                      v-if="sonIndex === 0"
+                    >
+                      {{ item.roughWeight }}
+                    </td>
+                  </tr>
+                </template>
+              </tbody>
+            </table>
+            <!-- <table
+              class="three"
+              cellspacing="0"
+              cellpadding="0"
+              border="0"
+              style="width: 100%; border-bottom: 0"
               v-if="
                 printDetails.packDetailList &&
                 printDetails.packDetailList.length > 0
@@ -1023,7 +1100,7 @@
                   </td>
                 </tr>
               </tbody>
-            </table>
+            </table> -->
           </div>
           <div v-if="[3].includes(openStatus)">
             <div style="height: 16px"></div>

+ 33 - 45
src/views/salesMange/shipmentMange/packing/index.vue

@@ -647,51 +647,39 @@ const config = computed(() => {
       // 渲染 el-button,一般用在最后一列。
       renderHTML(row) {
         return [
-          // {
-          //   attrs: {
-          //     label: "打印",
-          //     type: "primary",
-          //     text: true,
-          //   },
-          //   el: "button",
-          //   click() {
-          //     getDtl(row);
-          //   },
-          // },
-          // {
-          //   attrs: {
-          //     label: "删除",
-          //     type: "primary",
-          //     text: true,
-          //     disabled: row.status != 30,
-          //   },
-          //   el: "button",
-          //   click() {
-          //     ElMessageBox.confirm(
-          //       "此操作将永久作废该数据, 是否继续?",
-          //       "提示",
-          //       {
-          //         confirmButtonText: "确定",
-          //         cancelButtonText: "取消",
-          //         type: "warning",
-          //       }
-          //     ).then(() => {
-          //       // 删除
-          //       proxy
-          //         .post("/subscribeDetail/edit", {
-          //           ...row,
-          //           status: 99,
-          //         })
-          //         .then((res) => {
-          //           ElMessage({
-          //             message: "作废成功",
-          //             type: "success",
-          //           });
-          //           getList();
-          //         });
-          //     });
-          //   },
-          // },
+          {
+            attrs: {
+              label: "删除",
+              type: "primary",
+              text: true,
+              disabled: false,
+            },
+            el: "button",
+            click() {
+              ElMessageBox.confirm(
+                "此操作将永久作废该数据, 是否继续?",
+                "提示",
+                {
+                  confirmButtonText: "确定",
+                  cancelButtonText: "取消",
+                  type: "warning",
+                }
+              ).then(() => {
+                // 删除
+                proxy
+                  .post("/pack/delete", {
+                    id: row.packId,
+                  })
+                  .then((res) => {
+                    ElMessage({
+                      message: "作废成功",
+                      type: "success",
+                    });
+                    getList();
+                  });
+              });
+            },
+          },
         ];
       },
     },