|
@@ -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>
|