Parcourir la source

更新 船舶证书上传组件替换为Certs嵌套组件

wzh il y a 4 ans
Parent
commit
65c80becb5

+ 4 - 71
src/views/shipInfo/shipDetail.vue

@@ -346,10 +346,6 @@ export default {
   setup() {
     const route = useRoute();
     let shipDetail = ref({});
-    let shipFileList = ref([]);
-    let annualFileList = ref([]);
-    let shipNationFileList = ref([]);
-    let operatingFileList = ref([]);
     async function getShipDetail() {
       let res = await api.getShipDetail({
         shipId: route.query.shipId,
@@ -358,82 +354,28 @@ export default {
         shipDetail.value = res.data.result;
         voyageForm.voyageForm.shipName = res.data.result.shipname;
         voyageForm.voyageForm.shipId = res.data.result.id;
-        shipFileList.value = [];
-        annualFileList.value = [];
-        shipNationFileList.value = [];
-        operatingFileList.value = [];
         certs.value.initCerts(shipDetail.value.shipCertificates);
-        for (let i of shipDetail.value.shipCertificates) {
-          i.url = i.viewUrl;
-          switch (i.type) {
-            case 5: {
-              annualFileList.value.push(i);
-              break;
-            }
-
-            case 6: {
-              shipNationFileList.value.push(i);
-              break;
-            }
-
-            case 7: {
-              operatingFileList.value.push(i);
-              break;
-            }
-            default: {
-              shipFileList.value.push(i);
-              break;
-            }
-          }
-        }
       } else {
         console.log(res);
       }
     }
     let shipDetailCache = ref({});
-    let shipFileListCache = ref([]);
-    let annualFileListCache = ref([]);
-    let shipNationFileListCache = ref([]);
-    let operatingFileListCache = ref([]);
     function change() {
+      shipDetailCache.value = _.cloneDeep(shipDetail.value);
       certs.value.editCerts();
       unchangeable.value = false;
     }
 
     function cancelChange() {
-      shipDetail.value = _.cloneDeep(shipDetailCache.value);
+      if (!_.isEqual(shipDetail.value, shipDetailCache.value)) {
+        shipDetail.value = _.cloneDeep(shipDetailCache.value);
+      }
       certs.value.cancelEditCerts();
-      shipFileList.value = [];
-      annualFileList.value = [];
-      shipNationFileList.value = [];
-      operatingFileList.value = [];
-      let t = setTimeout(() => {
-        shipFileList.value = _.cloneDeep(shipFileListCache.value);
-        annualFileList.value = _.cloneDeep(annualFileListCache.value);
-        shipNationFileList.value = _.cloneDeep(shipNationFileListCache.value);
-        operatingFileList.value = _.cloneDeep(operatingFileListCache.value);
-        clearTimeout(t);
-      }, 500);
       unchangeable.value = true;
     }
 
     let unchangeable = ref(true);
 
-    function getShipFileList(list) {
-      shipFileList.value = list;
-    }
-
-    function getAnnualFileList(list) {
-      annualFileList.value = list;
-    }
-
-    function getShipNationFileList(list) {
-      shipNationFileList.value = list;
-    }
-    function getOperatingFileList(list) {
-      operatingFileList.value = list;
-    }
-
     async function submitChange() {
       shipDetail.value.shipId = shipDetail.value.id;
       shipDetail.value.shipCerts = certs.value.sendCerts();
@@ -689,8 +631,6 @@ export default {
       submitChange,
       shipDetail,
       router,
-      shipFileList,
-      getShipFileList,
       currentPage,
       term,
       tableData,
@@ -721,13 +661,6 @@ export default {
       selectDischargeProt,
       searchShip,
       selectShip,
-      // uploadUrl,
-      annualFileList,
-      getAnnualFileList,
-      shipNationFileList,
-      getShipNationFileList,
-      operatingFileList,
-      getOperatingFileList,
       certs,
     };
   },

+ 10 - 152
src/views/shipOwnerManage/shipOwnerDetail.vue

@@ -151,50 +151,7 @@
         ></el-input>
       </div>
     </div>
-    <div class="line" v-show="!unchangeableShip || shipFileList.length">
-      <div class="info-line">
-        <div class="info-line-title">船舶证书 :</div>
-        <Uploader
-          :params="shipParams"
-          :disabled="unchangeableShip"
-          @onSendFileList="getShipFileList"
-          :fileList="shipFileList"
-        ></Uploader>
-      </div>
-    </div>
-    <div class="line" v-show="!unchangeableShip || annualFileList.length">
-      <div class="info-line">
-        <div class="info-line-title">船舶年审合格证 :</div>
-        <Uploader
-          :params="{ type: '5', userId: 0, location: '' }"
-          :disabled="unchangeableShip"
-          @onSendFileList="getAnnualFileList"
-          :fileList="annualFileList"
-        ></Uploader>
-      </div>
-    </div>
-    <div class="line" v-show="!unchangeableShip || shipNationFileList.length">
-      <div class="info-line">
-        <div class="info-line-title">船舶国籍证书 :</div>
-        <Uploader
-          :params="{ type: '6', userId: 0, location: '' }"
-          :disabled="unchangeableShip"
-          @onSendFileList="getShipNationFileList"
-          :fileList="shipNationFileList"
-        ></Uploader>
-      </div>
-    </div>
-    <div class="line" v-show="!unchangeableShip || operatingFileList.length">
-      <div class="info-line">
-        <div class="info-line-title">营运证 :</div>
-        <Uploader
-          :params="{ type: '7', userId: 0, location: '' }"
-          :disabled="unchangeableShip"
-          @onSendFileList="getOperatingFileList"
-          :fileList="operatingFileList"
-        ></Uploader>
-      </div>
-    </div>
+    <Certs ref="certs"></Certs>
     <div class="df aic jcfe">
       <el-button v-if="unchangeableShip" type="primary" @click="change(0)">
         修改
@@ -229,17 +186,12 @@ export default {
     let shipDetail = ref({});
     let idFrontFile = ref([]);
     let idBackFile = ref([]);
-    let shipFileList = ref([]);
-    let annualFileList = ref([]);
-    let shipNationFileList = ref([]);
-    let operatingFileList = ref([]);
     let unchangeableShipOwner = ref(true);
     let unchangeableShip = ref(true);
     async function getUserDetail() {
       let res = await api.getUserDetail({
         userId: route.query.userId,
       });
-      console.log(res.data.result);
       if (res.data.status == 0) {
         let r = res.data.result;
 
@@ -307,33 +259,7 @@ export default {
           shipname,
           tonnage,
         };
-        shipFileList.value = [];
-        annualFileList.value = [];
-        shipNationFileList.value = [];
-        operatingFileList.value = [];
-        for (let i of shipCerts) {
-          i.url = i.viewUrl;
-          switch (i.type) {
-            case 5: {
-              annualFileList.value.push(i);
-              break;
-            }
-
-            case 6: {
-              shipNationFileList.value.push(i);
-              break;
-            }
-
-            case 7: {
-              operatingFileList.value.push(i);
-              break;
-            }
-            default: {
-              shipFileList.value.push(i);
-              break;
-            }
-          }
-        }
+        certs.value.initCerts(shipCerts);
       } else {
         ElNotification({
           type: "error",
@@ -361,26 +287,11 @@ export default {
     function idBackUploadSuccess(list) {
       idBackFile.value = list;
     }
-    function getShipFileList(list) {
-      shipFileList.value = list;
-    }
-
-    function getAnnualFileList(list) {
-      annualFileList.value = list;
-    }
-
-    function getShipNationFileList(list) {
-      shipNationFileList.value = list;
-    }
-    function getOperatingFileList(list) {
-      operatingFileList.value = list;
-    }
 
     let userDetailCache = ref({});
     let idFrontFileCache = ref([]);
     let idBackFileCache = ref([]);
     let shipDetailCache = ref({});
-    let shipFileListCache = ref([]);
     function change(type) {
       if (type) {
         userDetailCache.value = _.cloneDeep(userDetail.value);
@@ -389,7 +300,7 @@ export default {
         unchangeableShipOwner.value = false;
       } else {
         shipDetailCache.value = _.cloneDeep(shipDetail.value);
-        shipFileListCache.value = _.cloneDeep(shipFileList.value);
+        certs.value.editCerts();
         unchangeableShip.value = false;
       }
     }
@@ -412,9 +323,7 @@ export default {
         if (!_.isEqual(shipDetail.value, shipDetailCache.value)) {
           shipDetail.value = _.cloneDeep(shipDetailCache.value);
         }
-        if (!_.isEqual(shipFileList.value, shipFileListCache.value)) {
-          shipFileList.value = _.cloneDeep(shipFileListCache.value);
-        }
+        certs.value.cancelEditCerts();
         unchangeableShip.value = true;
       }
     }
@@ -464,55 +373,7 @@ export default {
         }
         getUserDetail();
       } else {
-        shipDetail.value.shipCerts = [];
-        for (let i of shipFileList.value) {
-          if (i.id) {
-            shipDetail.value.shipCerts.push(i);
-          } else {
-            shipDetail.value.shipCerts.push({
-              downloadUrl: i.response.result.downloadUrl,
-              fileKey: i.response.result.key,
-              viewUrl: i.response.result.viewUrl,
-              type: 2,
-            });
-          }
-        }
-        for (let i of annualFileList.value) {
-          if (i.id) {
-            shipDetail.value.shipCerts.push(i);
-          } else {
-            shipDetail.value.shipCerts.push({
-              downloadUrl: i.response.result.downloadUrl,
-              fileKey: i.response.result.key,
-              viewUrl: i.response.result.viewUrl,
-              type: 5,
-            });
-          }
-        }
-        for (let i of shipNationFileList.value) {
-          if (i.id) {
-            shipDetail.value.shipCerts.push(i);
-          } else {
-            shipDetail.value.shipCerts.push({
-              downloadUrl: i.response.result.downloadUrl,
-              fileKey: i.response.result.key,
-              viewUrl: i.response.result.viewUrl,
-              type: 6,
-            });
-          }
-        }
-        for (let i of operatingFileList.value) {
-          if (i.id) {
-            shipDetail.value.shipCerts.push(i);
-          } else {
-            shipDetail.value.shipCerts.push({
-              downloadUrl: i.response.result.downloadUrl,
-              fileKey: i.response.result.key,
-              viewUrl: i.response.result.viewUrl,
-              type: 7,
-            });
-          }
-        }
+        shipDetail.value.shipCerts = certs.value.sendCerts();
         let postData = {
           ...shipDetail.value,
           userId: route.query.userId,
@@ -533,16 +394,19 @@ export default {
           });
           console.log(res);
         }
+        certs.value.disabled = true;
+
         getUserDetail();
       }
     }
+    let certs = ref(null);
+
     onMounted(() => {
       getUserDetail();
     });
     return {
       idFrontUploadSuccess,
       idBackUploadSuccess,
-      getShipFileList,
       getUserDetail,
       userDetail,
       shipDetail,
@@ -556,13 +420,7 @@ export default {
       router,
       idFrontFile,
       idBackFile,
-      shipFileList,
-      annualFileList,
-      shipNationFileList,
-      operatingFileList,
-      getAnnualFileList,
-      getShipNationFileList,
-      getOperatingFileList,
+      certs,
     };
   },
 };

+ 7 - 0
src/views/voyage/voyageDetail.vue

@@ -494,6 +494,10 @@
       </div>
     </div>
   </div>
+  <div class="container-title">船舶证书</div>
+  <div class="line-container-p24">
+    <Certs ref="certs"></Certs>
+  </div>
   <div class="container-title">航次图片</div>
   <div class="line-container-p24">
     <div v-if="medias.length" class="medias-content df ffw">
@@ -634,6 +638,7 @@ export default {
         coordinates.value = res.data.result.coordinates;
         voyage.value = res.data.result.voyage;
         medias.value = res.data.result.medias;
+        certs.value.initCerts(res.data.result.shipAudits);
 
         for (let i of res.data.result.waybills) {
           voyageBill.value.push({
@@ -1064,11 +1069,13 @@ export default {
           });
         });
     }
+    let certs = ref(null);
     onMounted(() => {
       getVoyageDetail(1);
       getDischargeList(1);
     });
     return {
+      certs,
       downloadExcel,
       isLoadingExcel,
       options,