Explorar el Código

Merge remote-tracking branch 'origin/dev' into dev

youchen hace 11 meses
padre
commit
5badfc9e0b
Se han modificado 3 ficheros con 94 adiciones y 15 borrados
  1. 5 1
      src/utils/request.js
  2. 26 12
      src/views/expend/expendMx.vue
  3. 63 2
      src/views/expend/expendMxDetail.vue

+ 5 - 1
src/utils/request.js

@@ -224,7 +224,11 @@ export function download(url, params, filename, config) {
         const rspObj = JSON.parse(resText);
         const errMsg =
           errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
-        Message.error(errMsg);
+        if (rspObj.code === 200) {
+          Message.success(errMsg);
+        } else {
+          Message.error(errMsg);
+        }
       }
       downloadLoadingInstance.close();
     })

+ 26 - 12
src/views/expend/expendMx.vue

@@ -189,7 +189,7 @@
           <el-button
             type="primary"
             size="mini"
-            :disabled="!ids.length"
+            :disabled="((!ids.length) && (!(params.custName && params.startDate && params.endDate)))"
             @click="huizong"
             >汇总</el-button
           >
@@ -492,18 +492,32 @@ export default {
         });
     },
     async huizong() {
-      try {
-        let map = {
-          ids: this.ids.map((s) => s.id),
-        };
-        await this.download(
-          "/pu/doc/pullToCcd",
-          { ...map },
-          `汇总明细_${new Date().getTime()}.xlsx`
-        );
-      } catch (error) {
-      } finally {
+      if(this.params.custName && this.params.startDate && this.params.endDate) {
         this.useQuery(this.params, this.pageInfo);
+        this.$modal.loading("正在汇总,请稍后...");
+        huizongMX(this.params).then(res => {
+          if(res.code === 200) {
+            this.$modal.closeLoading();
+            this.$modal.notifySuccess("汇总成功,请前往客户消耗单查看");
+            this.useQuery(this.params, this.pageInfo);
+          }
+        }).catch(err => {
+          this.$modal.closeLoading();
+        })
+      } else {
+        try {
+          let map = {
+            ids: this.ids.map((s) => s.id),
+          };
+          await this.download(
+            "/pu/doc/pullToCcd",
+            { ...map },
+            `汇总明细_${new Date().getTime()}.xlsx`
+          );
+        } catch (error) {
+        } finally {
+          this.useQuery(this.params, this.pageInfo);
+        }
       }
     },
     check(row) {

+ 63 - 2
src/views/expend/expendMxDetail.vue

@@ -214,6 +214,33 @@
             </el-form-item>
           </el-col>
         </el-row>
+
+        <span>快捷搜索</span>
+        <el-row>
+          <el-col :span="1.5">
+            <el-form-item label="物料编码搜索">
+              <el-input
+                style="width: 200px"
+                clearable
+                :size="size"
+                v-model.trim="params.parameters"
+              >
+              </el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="1.5">
+            <el-form-item label="规格型号搜索">
+              <el-input
+                style="width: 200px"
+                clearable
+                :size="size"
+                v-model.trim="params.parameters2"
+              >
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
 
       <div class="btn_group">
@@ -344,7 +371,11 @@
           title="物料编码"
           field="itemCode"
           align="center"
-        />
+        >
+          <template slot-scope="scope">
+            <span v-html="showData(scope.row.itemCode, params.parameters)"></span>
+          </template>
+        </ux-table-column>
         <ux-table-column
           resizable
           title="物料名称"
@@ -356,7 +387,11 @@
           title="规格型号"
           field="itemSpec"
           align="center"
-        />
+        >
+        <template slot-scope="scope">
+            <span v-html="showDatas(scope.row.itemSpec, params.parameters2)"></span>
+          </template>
+        </ux-table-column>
         <ux-table-column
           resizable
           title="厂家"
@@ -447,6 +482,10 @@ export default {
   },
   data() {
     return {
+      params: {
+        parameters: '',
+        parameters2: ''
+      },
       size: "mini",
       // 不能直接改变props传来的值
       sonPageStu: this.pageStu,
@@ -523,6 +562,28 @@ export default {
     },
   },
   methods: {
+    showData(val, searchData) {
+      // 不区分大小写  const Reg = new RegExp(searchData, 'i');
+      // 全局替换  const Reg = new RegExp(searchData, 'g');
+      const Reg = new RegExp(searchData, 'ig');
+      if (val) {
+          // 注意 这里推荐使用正则占位符$& 不使用${searchData}  因为当这里使用正则表达式(i)不区分大小写时,如果你的文本是大写,搜索的关键字是小写,匹配结果会替换掉大写的文本
+          // const res = val.replace(Reg, `<span style="background-color: yellow;">${searchData}</span>`);
+          const res = val.replace(Reg, `<span style="background-color: yellow;">$&</span>`);
+          return res;
+      }
+    },
+    showDatas(val, searchData) {
+      // 不区分大小写  const Reg = new RegExp(searchData, 'i');
+      // 全局替换  const Reg = new RegExp(searchData, 'g');
+      const Reg = new RegExp(searchData, 'ig');
+      if (val) {
+          // 注意 这里推荐使用正则占位符$& 不使用${searchData}  因为当这里使用正则表达式(i)不区分大小写时,如果你的文本是大写,搜索的关键字是小写,匹配结果会替换掉大写的文本
+          // const res = val.replace(Reg, `<span style="background-color: yellow;">${searchData}</span>`);
+          const res = val.replace(Reg, `<span style="background-color: palegreen;">$&</span>`);
+          return res;
+      }
+    },
     getToFixed(prop, val = 2) {
       return Number(prop.toFixed(val));
     },