Browse Source

feature: 审核查询完成

ymz 2 months ago
parent
commit
290856c71a
1 changed files with 196 additions and 5 deletions
  1. 196 5
      src/views/paymentVoucherNotification/distributeVoucher/index.vue

+ 196 - 5
src/views/paymentVoucherNotification/distributeVoucher/index.vue

@@ -1,12 +1,89 @@
 <template>
   <basic-container>
+    <div class="search-content">
+      <el-form :model="searchFrom" label-width="140px">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="执行包年度">
+              <el-date-picker clearable class="w100" v-model="searchFrom.year" type="year" placeholder="请选择执行包年度" format="yyyy" value-format="yyyy"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="执行包季度">
+              <el-select v-model="searchFrom.quarter" placeholder="请选择服务季度" class="w100" clearable>
+                <el-option :label="item.label" :value="item.value" v-for="item in quarterList" :key="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="执行包ID">
+              <el-input v-model="searchFrom.pkgId" placeholder="请输入内容"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="审核阶段">
+              <el-select v-model="searchFrom.checkState" placeholder="请选择审核阶段" class="w100" clearable>
+                <el-option :label="item.key" :value="item.value" v-for="item in statusList" :key="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="知会阶段">
+              <el-select v-model="searchFrom.step" placeholder="请选择知会阶段" class="w100" clearable>
+                <el-option label="第一季度" :value="1"></el-option>
+                <el-option label="第二季度" :value="2"></el-option>
+                <el-option label="第三季度" :value="3"></el-option>
+                <el-option label="第四季度" :value="4"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="产品所属生产企业">
+              <el-select v-model="searchFrom.mahName" @change="mahNameChange" placeholder="请选择产品所属生产企业" class="w100" clearable>
+                <el-option v-for="item in mahNameArr" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="关联产品名称">
+              <el-select v-model="searchFrom.skuId" placeholder="请选择关联产品名称" class="w100" :disabled="drugDisabled" clearable filterable>
+                <el-option v-for="item in currDrugList" :key="item.id" :label="item.drugNameTy" :value="item.id" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="执行包所属省份">
+              <el-select v-model="searchFrom.provAbbr" placeholder="请选择省份" class="w100" clearable>
+                <el-option v-for="province in abbreviationsProvincesList" :key="province" :label="province" :value="province" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="上游服务包名称">
+              <el-select v-model="searchFrom.pkgIds" placeholder="请选择上游服务包名称" class="w100" clearable filterable>
+                <el-option v-for="(item, index) in relPkgNameArr" :key="index" :label="item.label" :value="item.value" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="search-btns">
+              <el-button type="success" class="btn-style" @click="clickBtn">搜索</el-button>
+              <el-button @click="clearSearch">清空</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
     <avue-crud
       ref="crud"
       :page.sync="page"
       :data="tableData"
       :table-loading="tableLoading"
       :option="tableOption"
-      @on-load="getList"
       @refresh-change="refreshChange"
       @size-change="sizeChange"
       @current-change="currentChange"
@@ -28,16 +105,64 @@
 </template>
 
 <script>
+import { getDrug2Avail, getPkgV2Api } from '@/api/serviceManagement/servicesToBeReviewed/index.js';
+import { getDictType } from '@/api/common';
+import dayjs from 'dayjs';
 import createDialig from './components/createDialig.vue';
-import {redemptionNoticePageApi, redemptionNoticeReadApi} from '@/api/distributeVoucher.js';
-import {tableOption} from '@/const/crud/distributeVoucher.js';
-import {mapGetters} from 'vuex';
+import { redemptionNoticePageApi, redemptionNoticeReadApi } from '@/api/distributeVoucher.js';
+import { tableOption } from '@/const/crud/distributeVoucher.js';
+import { mapGetters } from 'vuex';
+import abbreviationsProvinces from '@/const/abbreviationsProvinces.js';
 export default {
-  components: {createDialig},
+  components: { createDialig },
   data() {
     return {
       tableLoading: false,
       tableOption: tableOption,
+      quarterList: [
+        {
+          label: '第一季度',
+          value: 1
+        },
+        {
+          label: '第二季度',
+          value: 2
+        },
+        {
+          label: '第三季度',
+          value: 3
+        },
+        {
+          label: '第四季度',
+          value: 4
+        }
+      ],
+      statusList: [
+        { key: '审核通过', value: 'PASSED' },
+        { key: '审核拒绝', value: 'REJECTED' },
+        { key: '待市场组审批', value: 'INIT' },
+        { key: '待商务组审批', value: 'CKT1' },
+        { key: '待事业部分管销售领导审批', value: 'CKT2' },
+        { key: '待事业部总经理审批', value: 'CKT3' },
+        { key: '待分管领导审批', value: 'CKT4' }
+      ],
+      mahNameArr: [],
+      drugListArr: [],
+      drugDisabled: true,
+      currDrugList: [],
+      relPkgNameArr: {},
+      abbreviationsProvincesList: abbreviationsProvinces,
+      searchFrom: {
+        year: '',
+        quarter: '',
+        pkgId: '',
+        checkState: '',
+        step: '',
+        mahName: '',
+        skuId: '',
+        provAbbr: '',
+        pkgIds: ''
+      },
       page: {
         total: 0, // 总页数
         currentPage: 1, // 当前页数
@@ -50,7 +175,63 @@ export default {
   computed: {
     ...mapGetters(['userInfo', 'roles'])
   },
+  mounted() {
+    const lastYear = dayjs().subtract(1, 'year').format('YYYY');
+    this.searchFrom.year = lastYear;
+    this.getList(this.page, this.searchFrom);
+    this.getDict();
+  },
   methods: {
+    getDict() {
+      getDictType({ type: 'mah_name' }).then((res) => {
+        this.mahNameArr = res.data.data;
+      });
+      getDrug2Avail().then((res) => {
+        this.drugListArr = res.data.data;
+      });
+      getPkgV2Api().then((res) => {
+        let arr = [];
+        let data = res.data.data;
+        for (let key in data) {
+          let obj = {
+            label: key,
+            value: data[key]
+          };
+          arr.push(obj);
+        }
+
+        this.relPkgNameArr = arr;
+      });
+    },
+    mahNameChange(e) {
+      if (e) {
+        const curr = this.drugListArr[e];
+        this.currDrugList = curr;
+        this.drugDisabled = false;
+      } else {
+        this.searchFrom.skuId = '';
+        this.currDrugList = [];
+        this.drugDisabled = true;
+      }
+    },
+    clickBtn() {
+      this.tableData = [];
+      this.page.currentPage = 1;
+      this.getList(this.page, this.searchFrom);
+    },
+    clearSearch() {
+      this.searchFrom = {
+        year: dayjs().subtract(1, 'year').format('YYYY'),
+        quarter: '',
+        pkgId: '',
+        checkState: '',
+        step: '',
+        mahName: '',
+        skuId: '',
+        provAbbr: '',
+        pkgIds: ''
+      };
+    },
     async getList(page, params) {
       this.tableLoading = true;
       const obj = Object.assign(
@@ -89,9 +270,11 @@ export default {
     },
     sizeChange(pageSize) {
       this.page.pageSize = pageSize;
+      this.getList(this.page, this.searchFrom);
     },
     currentChange(current) {
       this.page.currentPage = current;
+      this.getList(this.page, this.searchFrom);
     }
   }
 };
@@ -103,4 +286,12 @@ export default {
     text-align: left;
   }
 }
+.search-btns {
+  margin-left: 50px;
+  display: flex;
+
+  .btn-style {
+    margin-right: 15px;
+  }
+}
 </style>