002201 2 years ago
parent
commit
9a3dfba87b

+ 18 - 14
src/api/business/purchase/contract.js

@@ -61,29 +61,33 @@ export function CODE() {
   });
 }
 
+const switchUrl = (prop) => {
+  if (prop === "contractItemList") return "/pu/contract/item";
+  if (prop === "contractClauseList") return "/pu/contract/clause";
+  if (prop === "contractExpenseList") return "/pu/contract/expense";
+  if (prop === "contractAgreementList") return "/pu/contract/agreement";
+  if (prop === "contractApplyOrgList") return "/pu/contract/org";
+};
+
 export function TABLELIST(params, name) {
-  let url = "";
-  if (name === "contractItemList") url = "/pu/contract/item/list";
-  if (name === "contractClauseList") url = "/pu/contract/clause/list";
-  if (name === "contractExpenseList") url = "/pu/contract/expense/list";
-  if (name === "contractAgreementList") url = "/pu/contract/agreement/list";
-  if (name === "contractApplyOrgList") url = "/pu/contract/org/list";
   return request({
-    url: url,
+    url: `${switchUrl(name)}/list`,
     method: "GET",
     params: params,
   });
 }
 
+export function TABLEEDIT(data, name) {
+  return request({
+    url: `${switchUrl(name)}/edit`,
+    method: "PUT",
+    data: data,
+  });
+}
+
 export function TABLEROMOVE(data, name) {
-  let url = "";
-  if (name === "contractItemList") url = "/pu/contract/item";
-  if (name === "contractClauseList") url = "/pu/contract/clause";
-  if (name === "contractExpenseList") url = "/pu/contract/expense";
-  if (name === "contractAgreementList") url = "/pu/contract/agreement";
-  if (name === "contractApplyOrgList") url = "/pu/contract/org";
   return request({
-    url: `${url}/${data}`,
+    url: `${switchUrl(name)}/${data}`,
     method: "DELETE",
   });
 }

+ 2 - 6
src/components/FileUpload/index.vue

@@ -101,8 +101,8 @@ export default {
       baseUrl: "https://sy.derom.com/document-center/fastdfs/download",
       uploadFileUrl:
         process.env.NODE_ENV == "development"
-          ? "/document-center/fastdfs/upload"
-          : "/drp-file/document-center/fastdfs/upload",
+          ? "/drp-file/document-center/fastdfs/upload"
+          : "/document-center/fastdfs/upload",
       headers: {
         Authorization: "Bearer " + getToken(),
       },
@@ -128,10 +128,6 @@ export default {
           // });
           this.fileList = list.map((item) => {
             item = JSON.parse(item);
-            console.log({
-              ...item,
-              uid: item.uid || new Date().getTime() + temp++,
-            });
             return {
               ...item,
               uid: item.uid || new Date().getTime() + temp++,

+ 67 - 6
src/views/purchase/contract/edit/index.vue

@@ -4,8 +4,10 @@ import {
   EDIT,
   ITEM,
   TABLELIST,
+  TABLEEDIT,
   TABLEROMOVE,
 } from "@/api/business/purchase/contract";
+import { REFER } from "@/components/popover-select/api";
 import { initDicts, initRules, initParams } from "@/utils/init";
 
 export default {
@@ -53,6 +55,19 @@ export default {
       },
       immediate: true,
     },
+    "params.contractItemList": {
+      handler: function (newProp, oldProp) {
+        console.log(newProp, oldProp);
+        if (newProp.length === oldProp.length) {
+          const index = newProp.findIndex(
+            (item, index) =>
+              JSON.stringify(item) === JSON.stringify(oldProp[index])
+          );
+          console.log(index);
+        }
+      },
+      deep: true,
+    },
   },
   methods: {
     //
@@ -89,7 +104,10 @@ export default {
         this.loading = true;
         const { code, rows } = await TABLELIST({ contractId: prop }, name);
         if (code === 200) {
-          this.params[name] = rows;
+          this.params[name] = rows.map((item) => ({
+            ...item,
+            status: "success",
+          }));
         }
       } catch (err) {
         // catch
@@ -99,6 +117,28 @@ export default {
       }
     },
     //
+    async fetchRefer(prop, type, source) {
+      const { rateCode } = prop;
+      if (type === "MATERIAL_PARAM") {
+        try {
+          this.loading = true;
+          const { code, rows } = await REFER({
+            search: rateCode,
+            type: "TAX_RATE_PARAM",
+          });
+          if (code === 200) {
+            const [{ ntaxrate }] = rows;
+            source.tax = ntaxrate;
+          }
+        } catch (err) {
+          // catch
+        } finally {
+          // finally
+          this.loading = false;
+        }
+      }
+    },
+    //
     rowAdd(prop) {
       const tab = this.tabColumns.find((element) => element.key === prop);
       this.params[prop].push(initParams(tab.tableColumns));
@@ -119,6 +159,20 @@ export default {
       }
     },
     //
+    async rowSubmit(prop, { row }) {
+      try {
+        this.loading = true;
+        const { code } = await TABLEEDIT(row, prop);
+        if (code === 200) {
+        }
+      } catch (err) {
+        // catch
+      } finally {
+        // finally
+        this.loading = false;
+      }
+    },
+    //
     submit(prop) {
       this.$refs[prop].validate(async (valid) => {
         if (valid) {
@@ -267,11 +321,11 @@ export default {
               </el-table-column>
               <el-table-column
                 v-for="(cColumn, cIndex) in column.tableColumns"
+                show-overflow-tooltip
                 :key="cIndex"
                 :prop="cColumn.key"
                 :label="cColumn.title"
                 :width="cColumn.width"
-                show-overflow-tooltip
               >
                 <template slot-scope="scope">
                   <el-input
@@ -303,6 +357,7 @@ export default {
                     :clearable="cColumn.clearable"
                     :placeholder="cColumn.placeholder"
                     :data-mapping="cColumn.dataMapping"
+                    @change="fetchRefer"
                   >
                   </dr-popover-select>
                   <el-input-number
@@ -334,7 +389,7 @@ export default {
                   <span v-else> {{ scope.row[cColumn.key] }}</span>
                 </template>
               </el-table-column>
-              <el-table-column fixed="right" label="操作" width="75">
+              <el-table-column fixed="right" label="操作" width="100">
                 <template slot="header" slot-scope="scope">
                   <el-button
                     circle
@@ -345,13 +400,19 @@ export default {
                   </el-button>
                 </template>
                 <template slot-scope="scope">
+                  <!-- v-if="scope.row.status !== 'success'" -->
+                  <el-button
+                    circle
+                    icon="el-icon-check"
+                    :size="size"
+                    @click.native.prevent="rowSubmit(tabName, scope)"
+                  >
+                  </el-button>
                   <el-button
                     circle
                     icon="el-icon-minus"
                     :size="size"
-                    @click.native.prevent="
-                      rowDelete(params[tabName], scope.$index)
-                    "
+                    @click.native.prevent="rowDelete(tabName, scope)"
                   >
                   </el-button>
                 </template>

+ 2 - 1
src/views/purchase/task/first-direct/index.vue

@@ -77,7 +77,7 @@ export default {
 </script>
 
 <template>
-  <el-dialog :visible.sync="visible" title="首次协议直采">
+  <el-dialog :visible.sync="visible" width="75%" title="首次协议直采">
     <div
       v-for="(item, index) in data"
       :key="index"
@@ -101,6 +101,7 @@ export default {
       </el-descriptions>
       <el-table
         v-loading="loading"
+        :size="size"
         :data="item.orderPriceVos"
         style="width: 100%"
       >

+ 12 - 14
src/views/purchase/task/index.vue

@@ -27,9 +27,7 @@ export default {
       tableData: [],
       selectData: [],
       tableColumns: TableColumns,
-      page: initPage(),
-      layout: initLayout(),
-      pageSizes: initPageSizes(),
+      page: { pageNum: 1, pageSize: 10, total: 0 },
     };
   },
   computed: {},
@@ -143,7 +141,12 @@ export default {
 <template>
   <el-card
     v-loading="loading"
-    style="width: calc(100% - 24px); height: 100%; margin: 10px"
+    style="
+      width: calc(100% - 20px);
+      height: 100%;
+      margin: 10px;
+      padding: 0 20px 20px 0;
+    "
     :body-style="{ padding: 0 }"
   >
     <see-dialog ref="SeeDialog"></see-dialog>
@@ -325,16 +328,11 @@ export default {
         </template>
       </el-table-column>
     </el-table>
-    <el-pagination
-      @size-change="sizeChange"
-      @current-change="currentChange"
+    <pagination
       :total="page.total"
-      :page-sizes="pageSizes"
-      :page-size="page.pageSize"
-      :current-page="page.pageNum"
-      layout="total, prev, pager, next, sizes, jumper"
-      style="margin: 10px 20px"
-    >
-    </el-pagination>
+      :page.sync="page.pageNum"
+      :limit.sync="page.pageSize"
+      @pagination="queryList(params, page)"
+    />
   </el-card>
 </template>

+ 2 - 2
vue.config.js

@@ -37,7 +37,7 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://172.16.100.107:8080/drp-admin`, //测试
-        target: `http://test-sy.derom.com/drp-admin`, //测试
+        // target: `http://test-sy.derom.com/drp-admin`, //测试
         // target: `http://release-sy.derom.com/drp-admin`, //预发
         // target: `http://sy.derom.com/drp-admin`, //生产
         // target: `http://172.16.63.202:8000/drp-admin`, // D本地
@@ -45,7 +45,7 @@ module.exports = {
         // target: `http://172.16.13.152:8000/drp-admin`, //豪哥本地
         // target: `http://172.16.13.47:8000/drp-admin`, //石杨本地
         // target: `http://172.16.13.113:8000/drp-admin`, //DWT本地
-        // target: `http://172.16.13.77:8000/drp-admin`, //TQ本地
+        target: `http://172.16.13.77:8000/drp-admin`, //TQ本地
         // target: `http://127.0.0.1:8000/drp-admin`, //
         changeOrigin: true,
         pathRewrite: {