|
@@ -4,12 +4,12 @@
|
|
|
<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 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-form-item label="执行包季度">
|
|
|
<el-select v-model="searchFrom.quarter" placeholder="请选择服务季度" class="w100" clearable>
|
|
|
<el-option label="第一季度" :value="1"></el-option>
|
|
|
<el-option label="第二季度" :value="2"></el-option>
|
|
@@ -34,15 +34,15 @@
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="服务供应商">
|
|
|
- <el-select v-model="searchFrom.vendorId" placeholder="请选择服务供应商" class="w100" clearable filterable>
|
|
|
+ <el-form-item label="服务提供商">
|
|
|
+ <el-select v-model="searchFrom.vendorId" placeholder="请选择服务提供商" class="w100" clearable filterable>
|
|
|
<el-option v-for="item in deptListArr" :key="item.entId" :label="item.name" :value="item.entId" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="业务员姓名">
|
|
|
- <el-select v-model="searchFrom.salesId" placeholder="请选择业务员姓名" class="w100" clearable filterable>
|
|
|
+ <el-form-item label="推广员姓名">
|
|
|
+ <el-select v-model="searchFrom.salesId" placeholder="请选择推广员姓名" class="w100" clearable filterable>
|
|
|
<el-option v-for="item in userListArr" :key="item.userId" :label="item.realName" :value="item.userId" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -64,7 +64,7 @@
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="服务包所属省份">
|
|
|
+ <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>
|
|
@@ -79,19 +79,35 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
- <vxe-table border allAlign="center" show-overflow highlight-hover-row height="1000" :loading="tableLoading" :data="tableData" :scroll-y="{ enabled: false }">
|
|
|
+ <vxe-table
|
|
|
+ border
|
|
|
+ allAlign="center"
|
|
|
+ show-overflow
|
|
|
+ highlight-hover-row
|
|
|
+ height="800"
|
|
|
+ empty-text="暂无匹配数据"
|
|
|
+ :loading="tableLoading"
|
|
|
+ :data="tableData"
|
|
|
+ :scroll-y="{ enabled: false }"
|
|
|
+ :header-cell-style="{ 'text-align': 'center' }"
|
|
|
+ :cell-style="{ 'text-align': 'center' }"
|
|
|
+ >
|
|
|
<vxe-table-column type="seq" title="序号" width="100"></vxe-table-column>
|
|
|
<vxe-table-column field="taskNumber" title="服务编号"></vxe-table-column>
|
|
|
+ <vxe-table-column field="cycle" title="执行包周期"> </vxe-table-column>
|
|
|
<vxe-table-column field="pkgName" title="执行包名称"></vxe-table-column>
|
|
|
<vxe-table-column field="taskTypeName" title="服务类型" width="200"></vxe-table-column>
|
|
|
<vxe-table-column field="taskScore" title="服务分值" width="100"></vxe-table-column>
|
|
|
<vxe-table-column field="salesName" title="推广员姓名" width="150"></vxe-table-column>
|
|
|
<vxe-table-column field="createTime" title="服务提交时间"></vxe-table-column>
|
|
|
- <vxe-table-column field="taskStatusName" title="审核状态" width="100"></vxe-table-column>
|
|
|
+ <vxe-table-column field="taskStatusName" title="服务当前状态" width="100"></vxe-table-column>
|
|
|
<vxe-table-column field="entName" title="服务提供商"></vxe-table-column>
|
|
|
- <vxe-table-column field="skuName" title="服务产品"></vxe-table-column>
|
|
|
- <vxe-table-column field="mahName" title="所属生产企业"></vxe-table-column>
|
|
|
- <vxe-table-column field="provAbbr" title="所属省份"></vxe-table-column>
|
|
|
+ <vxe-table-column field="mahName" title="产品所属生产企业"></vxe-table-column>
|
|
|
+ <vxe-table-column field="skuName" title="关联产品名称"></vxe-table-column>
|
|
|
+ <vxe-table-column field="provAbbr" title="执行包所属省份" width="130"></vxe-table-column>
|
|
|
+ <vxe-table-column title="操作">
|
|
|
+ <div>操作</div>
|
|
|
+ </vxe-table-column>
|
|
|
</vxe-table>
|
|
|
<vxe-pager
|
|
|
:current-page.sync="page.currentPage"
|
|
@@ -110,6 +126,8 @@ import { getTaskV2PageApi, getTaskTypeAvailApi, getDeptv2Avail, getDrug2Avail, g
|
|
|
import { tableOptin } from './index.js';
|
|
|
import { getDictType } from '@/api/common';
|
|
|
import abbreviationsProvinces from '@/const/abbreviationsProvinces.js';
|
|
|
+import dayjs from 'dayjs';
|
|
|
+import { mapGetters } from 'vuex';
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
@@ -126,6 +144,7 @@ export default {
|
|
|
currDrugList: [],
|
|
|
drugDisabled: true,
|
|
|
abbreviationsProvincesList: abbreviationsProvinces,
|
|
|
+ nodeId: '',
|
|
|
searchFrom: {
|
|
|
year: '',
|
|
|
taskTypeId: '',
|
|
@@ -135,7 +154,8 @@ export default {
|
|
|
mahName: '',
|
|
|
vendorId: '',
|
|
|
salesId: '',
|
|
|
- skuId: ''
|
|
|
+ skuId: '',
|
|
|
+ taskStatus: 3
|
|
|
},
|
|
|
page: {
|
|
|
pageSizes: [10, 50, 100, 300, 500],
|
|
@@ -145,10 +165,54 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
- async created() {
|
|
|
- await this.getDict();
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(['userInfo'])
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getDict();
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ const roles = this.userInfo.roles;
|
|
|
+
|
|
|
+ let nodeId = '';
|
|
|
+ switch (roles) {
|
|
|
+ // 43 地市管理员
|
|
|
+ case roles.includes(43):
|
|
|
+ nodeId = 1;
|
|
|
+ break;
|
|
|
+ // 4 区域管理员
|
|
|
+ case roles.includes(4):
|
|
|
+ nodeId = 2;
|
|
|
+ break;
|
|
|
+ // 42 市场管理员
|
|
|
+ case roles.includes(42):
|
|
|
+ nodeId = 3;
|
|
|
+ break;
|
|
|
+ // 40 商务管理员
|
|
|
+ case roles.includes(40):
|
|
|
+ nodeId = 3;
|
|
|
+ break;
|
|
|
+ // 39 事业部总经理
|
|
|
+ case roles.includes(39):
|
|
|
+ nodeId = 5;
|
|
|
+ break;
|
|
|
+ // 41 事业部分管领导
|
|
|
+ case roles.includes(41):
|
|
|
+ nodeId = 9;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ nodeId = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (roles.includes()) console.log('roles', roles);
|
|
|
+
|
|
|
+ const currentYear = dayjs().format('YYYY');
|
|
|
+ this.searchFrom.year = currentYear;
|
|
|
+ this.nodeId = nodeId;
|
|
|
+ this.searchFrom.nodeId = nodeId;
|
|
|
this.getList();
|
|
|
},
|
|
|
+
|
|
|
methods: {
|
|
|
getDict() {
|
|
|
getDictType({ type: 'task_status' }).then((res) => {
|
|
@@ -178,11 +242,6 @@ export default {
|
|
|
current: this.page.currentPage,
|
|
|
size: this.page.pageSize
|
|
|
},
|
|
|
- {
|
|
|
- nodeId: 1,
|
|
|
- year: 2024,
|
|
|
- quarter: 4
|
|
|
- },
|
|
|
this.searchFrom
|
|
|
);
|
|
|
const res = await getTaskV2PageApi(obj);
|
|
@@ -194,6 +253,7 @@ export default {
|
|
|
const currB = this.taskStatusArr.find((itn) => itn.value === item.taskStatus);
|
|
|
item.taskTypeName = currA?.name ?? '';
|
|
|
item.taskStatusName = currB?.label ?? '';
|
|
|
+ item.cycle = item.pkgStartTime + '~' + item.pkgEndTime;
|
|
|
});
|
|
|
this.page.total = res.data.data.total;
|
|
|
}
|
|
@@ -205,7 +265,7 @@ export default {
|
|
|
},
|
|
|
clearSearch() {
|
|
|
this.searchFrom = {
|
|
|
- year: '',
|
|
|
+ year: '2025',
|
|
|
taskTypeId: '',
|
|
|
quarter: '',
|
|
|
createTime: '',
|
|
@@ -213,8 +273,10 @@ export default {
|
|
|
mahName: '',
|
|
|
vendorId: '',
|
|
|
salesId: '',
|
|
|
- skuId: ''
|
|
|
+ skuId: '',
|
|
|
+ taskStatus: 3
|
|
|
};
|
|
|
+ this.searchFrom.nodeId = this.nodeId;
|
|
|
},
|
|
|
pageChange(obj) {
|
|
|
console.log('obj', obj);
|