0601资质更改
This commit is contained in:
parent
0dc4b56a13
commit
07e50c71d1
|
@ -120,6 +120,13 @@ export function getAbilityQuality(query) {
|
|||
params: query
|
||||
})
|
||||
}
|
||||
export function getQualityMy(query) {
|
||||
return request({
|
||||
url: `/ability/quali/my/`,
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getQtask(query) {
|
||||
return request({
|
||||
url: `/ability/qtask/`,
|
||||
|
@ -148,7 +155,14 @@ export function qtaskStart(id) {
|
|||
method:'put'
|
||||
})
|
||||
}
|
||||
|
||||
//任务详情
|
||||
export function qtaskDetail(query) {
|
||||
return request({
|
||||
url: `/ability/qorg/`,
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getQtaskMy(query) {
|
||||
return request({
|
||||
url: `/ability/qorg/my/`,
|
||||
|
@ -196,6 +210,14 @@ export function qactionMy(query) {
|
|||
params: query
|
||||
})
|
||||
}
|
||||
//我的报送操作
|
||||
export function qactionList(query) {
|
||||
return request({
|
||||
url:`/ability/qaction/`,
|
||||
method:'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
//报送操作操作记录
|
||||
export function qactionItem(id) {
|
||||
return request({
|
||||
|
@ -203,7 +225,7 @@ export function qactionItem(id) {
|
|||
method:'get',
|
||||
})
|
||||
}
|
||||
//报送操作操作记录queren
|
||||
//报送操作操作记录确认
|
||||
export function qactionConfirm(id) {
|
||||
return request({
|
||||
url:`/ability/qaction/${id}/confirm/`,
|
||||
|
@ -218,3 +240,18 @@ export function qactionDelete(id) {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function provinceLists() {
|
||||
return request({
|
||||
url:`/system/province/`,
|
||||
method:'get',
|
||||
})
|
||||
}
|
||||
export function cityLists(query) {
|
||||
return request({
|
||||
url:`/system/city/`,
|
||||
method:'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ export const asyncRoutes = [
|
|||
path: 'abilityQuality',
|
||||
name: 'abilityQuality',
|
||||
component: () => import('@/views/ability/abilityQuality'),
|
||||
meta: { title: '资质情况1', perms: ['qualification_view'] }
|
||||
meta: { title: '资质情况(新)', perms: ['qualification_view'] }
|
||||
},
|
||||
{
|
||||
path: 'cma',
|
||||
|
@ -124,7 +124,14 @@ export const asyncRoutes = [
|
|||
path: 'qualityTask',
|
||||
name: 'QualityTask',
|
||||
component: () => import('@/views/ability/qualityTask.vue'),
|
||||
meta: { title: '资质报送任务', perms: ['record_view'] }
|
||||
meta: { title: '资质报送任务' ,perms:['quli_task']}
|
||||
},
|
||||
{
|
||||
path: 'qualityTaskDo',
|
||||
name: 'qualityTaskDo',
|
||||
component: () => import('@/views/ability/qualityTaskDo.vue'),
|
||||
meta: { title: '任务详情'},
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'mQualityTask',
|
||||
|
@ -132,26 +139,12 @@ export const asyncRoutes = [
|
|||
component: () => import('@/views/ability/mQualityTask.vue'),
|
||||
meta: { title: '我的资质报送任务', perms: ['qtask_my'] }
|
||||
},
|
||||
{
|
||||
/*{
|
||||
path: 'qactionMy',
|
||||
name: 'qactionMy',
|
||||
component: () => import('@/views/ability/qactionMy.vue'),
|
||||
meta: { title: '资质报送操作', perms: ['qtask_my'] }
|
||||
},
|
||||
/* {
|
||||
path: 'content',
|
||||
name: 'Content',
|
||||
component: () => import('@/views/ability/content.vue'),
|
||||
meta: { title: '资质能力报送清单', perms: ['content'] }
|
||||
},
|
||||
|
||||
{
|
||||
path: 'records',
|
||||
name: 'Records',
|
||||
component: () => import('@/views/ability/records.vue'),
|
||||
meta: { title: '资质能力报送任务', perms: ['record_view'] }
|
||||
}
|
||||
,*/
|
||||
},*/
|
||||
{
|
||||
path: 'recordselect',
|
||||
name: 'Recordselect',
|
||||
|
|
|
@ -1,113 +1,115 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-card>
|
||||
<el-row :gutter="6">
|
||||
<!-- <el-col :xs="24" :md="4">
|
||||
<el-select v-model="listQuery.org" placeholder="所属单位" @change="handleFilter" clearable style="width: 100%;">
|
||||
<el-option
|
||||
v-for="item in org"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-col>-->
|
||||
<el-col :xs="24" :md="8">
|
||||
<el-input
|
||||
v-model="listQuery.search"
|
||||
placeholder="资质/服务"
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="6">
|
||||
<el-card>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="orgList"
|
||||
style="width: 100%;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="handleFilter"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
:height="leftHeight"
|
||||
ref="filterTable"
|
||||
@row-click="clickRow"
|
||||
>
|
||||
<el-table-column type="index" width="50"/>
|
||||
<el-table-column label="名称" prop="name">
|
||||
</el-table-column>
|
||||
<el-table-column label="服务" prop="service">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<el-card>
|
||||
<el-row class="filterTop" :gutter="6">
|
||||
<el-col :xs="24" :md="8">
|
||||
<el-input
|
||||
v-model="listQuery.search"
|
||||
placeholder="资质/服务"
|
||||
style="width: 100%;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :xs="24" :md="6">
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleFilter"
|
||||
>搜索
|
||||
</el-button>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="resetFilter"
|
||||
>重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="qualityList.results"
|
||||
style="width: 100%;"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
:height="rightHeight"
|
||||
ref="filterTable"
|
||||
>
|
||||
<el-table-column type="index" width="45"/>
|
||||
<el-table-column label="名称" prop="name">
|
||||
</el-table-column>
|
||||
<el-table-column label="资质类型" prop="type">
|
||||
</el-table-column>
|
||||
<el-table-column label="等级">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.type==='OTHER'">{{scope.row.level}}</span>
|
||||
<span v-else>{{typeOptions[scope.row.grade]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备案城市" prop="citys">
|
||||
<!-- <template slot-scope="scope">
|
||||
<span v-if="scope.row.grade">{{ scope.row.grade}}</span>
|
||||
<span v-if="scope.row.level">、{{ scope.row.level}}</span>
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
<el-table-column label="所属单位" prop="org"></el-table-column>
|
||||
<el-table-column label="主要服务" prop="service">
|
||||
</el-table-column>
|
||||
<el-table-column label="资质范围" prop="scope">
|
||||
</el-table-column>
|
||||
<el-table-column label="描述" prop="description">
|
||||
</el-table-column>
|
||||
<el-table-column label="创建日期">
|
||||
<template slot-scope="scope">{{scope.row.create_time.substring(0, 10)}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="变更日期">
|
||||
<template slot-scope="scope">{{scope.row.update_time.substring(0, 10)}}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="qualityList.count > 0"
|
||||
:total="qualityList.count"
|
||||
:page.sync="listQuery.page"
|
||||
:limit.sync="listQuery.page_size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :xs="24" :md="6">
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleFilter"
|
||||
>搜索
|
||||
</el-button>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="resetFilter"
|
||||
>重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 10px">
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="qualityList.results"
|
||||
style="width: 100%;"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
max-height="700"
|
||||
ref="filterTable"
|
||||
>
|
||||
<el-table-column type="index" width="50"/>
|
||||
<el-table-column label="名称" prop="name">
|
||||
</el-table-column>
|
||||
<el-table-column label="资质类型" prop="type">
|
||||
</el-table-column>
|
||||
<el-table-column label="等级">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.grade">{{ scope.row.grade}}</span>
|
||||
<span v-if="scope.row.level">、{{ scope.row.level}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备案城市" prop="citys">
|
||||
<!-- <template slot-scope="scope">
|
||||
<span v-if="scope.row.grade">{{ scope.row.grade}}</span>
|
||||
<span v-if="scope.row.level">、{{ scope.row.level}}</span>
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
<!--<el-table-column
|
||||
align="header-center"
|
||||
label="所属单位"
|
||||
prop="org"
|
||||
column-key="org"
|
||||
:filters="org"
|
||||
:filter-multiple="false"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">{{ scope.row.org}}</template>
|
||||
</el-table-column>-->
|
||||
<el-table-column label="所属单位" prop="org"></el-table-column>
|
||||
<el-table-column label="主要服务" prop="service">
|
||||
</el-table-column>
|
||||
<el-table-column label="资质范围" prop="scope">
|
||||
</el-table-column>
|
||||
<el-table-column label="描述" prop="description">
|
||||
</el-table-column>
|
||||
<el-table-column label="创建日期">
|
||||
<template slot-scope="scope">{{scope.row.create_time.substring(0, 10)}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="变更日期">
|
||||
<template slot-scope="scope">{{scope.row.update_time.substring(0, 10)}}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<pagination
|
||||
v-show="qualityList.count > 0"
|
||||
:total="qualityList.count"
|
||||
:page.sync="listQuery.page"
|
||||
:limit.sync="listQuery.page_size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getOrgList} from "@/api/org";
|
||||
import {getOrgList,getOrgAll} from "@/api/org";
|
||||
import {getCMAGroup} from "@/api/cma";
|
||||
import { getAbilityQuality} from "@/api/ability";
|
||||
import checkPermission from "@/utils/permission";
|
||||
|
@ -125,18 +127,27 @@
|
|||
org: '',
|
||||
search: ''
|
||||
},
|
||||
leftHeight:null,
|
||||
rightHeight:null,
|
||||
org: [],
|
||||
orgList: [],
|
||||
listLoading: true,
|
||||
dialogVisible: false,
|
||||
dialogType: "new",
|
||||
typeOptions: {
|
||||
'CMA': '',
|
||||
'CNAS': '',
|
||||
'OTHER': ''
|
||||
10: '国家级',
|
||||
20: '省级',
|
||||
30: '市级'
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
let height1 = document.getElementsByClassName('app-main')[0].clientHeight;
|
||||
this.leftHeight = height1-30;
|
||||
let height2 = document.getElementsByClassName('filterTop')[0].clientHeight;
|
||||
let height3 = document.getElementsByClassName('pagination-container')[0].clientHeight;
|
||||
this.leftHeight = height1-28;
|
||||
this.rightHeight = height1-height2-height3-60;
|
||||
this.getList();
|
||||
this.getGroup();
|
||||
},
|
||||
|
@ -155,15 +166,21 @@
|
|||
getOrgList({ can_supervision: true }).then((res) => {
|
||||
this.org = res.data;
|
||||
});
|
||||
/*getCMAGroup({page: 0, group_by: 'sszx'}).then((response) => {
|
||||
this.org = response.data;
|
||||
});*/
|
||||
getOrgList({service_ok:1}).then((response) => {
|
||||
this.orgList = response.data;
|
||||
});
|
||||
},
|
||||
handleFilter() {
|
||||
this.getList();
|
||||
},
|
||||
resetFilter() {
|
||||
this.listQuery.search = '';
|
||||
this.listQuery.org = '';
|
||||
this.getList();
|
||||
},
|
||||
clickRow(data){
|
||||
this.listQuery.org = data.id;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -105,6 +105,13 @@
|
|||
@pagination="getList"
|
||||
/>
|
||||
</el-card>
|
||||
<el-drawer
|
||||
title="我是标题"
|
||||
:visible.sync="drawer"
|
||||
:direction="rtl"
|
||||
>
|
||||
<span>我来啦!</span>
|
||||
</el-drawer>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
@ -129,8 +136,9 @@
|
|||
search: ''
|
||||
},
|
||||
org: [],
|
||||
drawer:false,
|
||||
taskOptions: [],
|
||||
listLoading: true,
|
||||
listLoading: false,
|
||||
dialogVisible: false,
|
||||
dialogType: "new",
|
||||
typeOptions: {
|
||||
|
|
|
@ -1,13 +1,37 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-card>
|
||||
<el-input
|
||||
v-model="pageForm.search"
|
||||
placeholder="任务名"
|
||||
style="width: 300px"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="handleAdd"
|
||||
icon="el-icon-search"
|
||||
@click="handleFilter"
|
||||
>搜索</el-button
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="resetFilter"
|
||||
>重置</el-button
|
||||
>
|
||||
<div style="margin-top: 10px">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="handleAdd"
|
||||
>
|
||||
新增资质报送任务
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
<el-card style="margin-top: 10px">
|
||||
<el-table
|
||||
|
@ -21,8 +45,14 @@
|
|||
>
|
||||
<el-table-column type="index" width="50"/>
|
||||
<el-table-column label="任务名称" prop="name"></el-table-column>
|
||||
<el-table-column label="发布状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.state==='待发布'" type="primary">待发布</el-tag>
|
||||
<el-tag v-else-if="scope.row.state==='进行中'" type="success">进行中</el-tag>
|
||||
<el-tag v-else type="warning">已关闭</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="截止日期" prop="end_date"></el-table-column>
|
||||
<el-table-column label="发布状态" prop="state"></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
|
@ -30,18 +60,21 @@
|
|||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-link
|
||||
type="success"
|
||||
size="small"
|
||||
@click="handleClick(scope)"
|
||||
>执行</el-link>
|
||||
<el-link
|
||||
v-if="scope.row.state==='待发布'"
|
||||
type="primary"
|
||||
size="small"
|
||||
icon="el-icon-edit"
|
||||
@click="handleEdit(scope)"
|
||||
>编辑</el-link>
|
||||
<el-link
|
||||
v-if="scope.row.state==='待发布'"
|
||||
type="warning"
|
||||
size="small"
|
||||
icon="el-icon-s-promotion"
|
||||
@click="handleStart(scope)"
|
||||
>发布</el-link>
|
||||
</template>
|
||||
|
@ -116,6 +149,7 @@
|
|||
pageForm:{
|
||||
page:1,
|
||||
page_size:20,
|
||||
search:''
|
||||
},
|
||||
fileList:[],
|
||||
updateId:null,
|
||||
|
@ -124,7 +158,9 @@
|
|||
end_date: "",
|
||||
orgs: [],
|
||||
},
|
||||
taskList: {},
|
||||
taskList: {
|
||||
count:0,
|
||||
},
|
||||
orgData: [],
|
||||
typeOptions: [],
|
||||
multiple: true,
|
||||
|
@ -144,6 +180,16 @@
|
|||
this.getQtaskList();
|
||||
},
|
||||
methods:{
|
||||
handleClick(scope){
|
||||
this.$router.push({name: "qualityTaskDo" });
|
||||
let qtaskId = sessionStorage.getItem('qtaskId');
|
||||
if(qtaskId!==''&&qtaskId!==null&&qtaskId!==undefined){
|
||||
sessionStorage.removeItem('qtaskId');
|
||||
sessionStorage.setItem('qtaskId',scope.row.id);
|
||||
}else{
|
||||
sessionStorage.setItem('qtaskId',scope.row.id);
|
||||
}
|
||||
},
|
||||
getOrgsList(){
|
||||
getOrgList({ can_supervision: true }).then((res) => {
|
||||
this.orgData = res.data;
|
||||
|
@ -223,8 +269,16 @@
|
|||
},
|
||||
getrecordlist(){
|
||||
this.getQtaskList();
|
||||
}
|
||||
},
|
||||
handleFilter() {
|
||||
this.getQtaskList();
|
||||
},
|
||||
resetFilter() {
|
||||
this.pageForm.search = '';
|
||||
this.getQtaskList();
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -0,0 +1,513 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-card>
|
||||
<div slot="header" class="clearfix">
|
||||
<span>任务详情</span>
|
||||
</div>
|
||||
<div style="margin-left: 10px; margin-right: 10px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div style="margin-bottom: 6px">
|
||||
<span class="term">任务名称</span>
|
||||
<span class="desc"> {{ qtask.name }}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div style="margin-bottom: 6px">
|
||||
<span class="term">截止日期</span>
|
||||
<span class="desc"> {{ qtask.end_date }}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div style="margin-bottom: 6px">
|
||||
<span class="term">任务状态</span>
|
||||
<span class="desc">
|
||||
<el-tag
|
||||
effect="plain"
|
||||
v-if="qtask.state == '待发布'"
|
||||
type="primary"
|
||||
>
|
||||
{{ qtask.state }}
|
||||
</el-tag>
|
||||
<el-tag
|
||||
effect="plain"
|
||||
v-else-if="qtask.state == '执行中'"
|
||||
type="success"
|
||||
>{{ qtask.state }}
|
||||
</el-tag>
|
||||
<el-tag effect="plain" v-else type="warning">
|
||||
{{qtask.state}}
|
||||
</el-tag>
|
||||
</span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 4px">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="handleQtaskStart()"
|
||||
v-if="qtask.state == '待发布'"
|
||||
size="small"
|
||||
>
|
||||
发布任务
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 2px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>执行组织</span>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="qtaskDepts"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
height="300px"
|
||||
@row-click="clickRow"
|
||||
>
|
||||
<el-table-column label="序号" type="index" align="center" width="55"/>
|
||||
<el-table-column label="公司名称">
|
||||
<template slot-scope="scope" v-if="scope.row.org_">
|
||||
<span style="color:darkblue">{{scope.row.org_.sort}}</span>-
|
||||
{{scope.row.org_.name}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="报送数">
|
||||
<template slot-scope="scope"> {{ scope.row.count }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="确认数">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.count_confirmed }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="240px"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-link
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleConfirmFK(scope)"
|
||||
>反馈
|
||||
</el-link
|
||||
>
|
||||
<el-link
|
||||
type="danger"
|
||||
size="small"
|
||||
@click="handleDeleteDept(scope)"
|
||||
>删除
|
||||
</el-link
|
||||
>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
</el-table>
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisibles"
|
||||
>
|
||||
<el-form
|
||||
ref="Forms"
|
||||
:model="Taskdept"
|
||||
label-width="80px"
|
||||
label-position="right"
|
||||
>
|
||||
<el-form-item label="反馈文件" prop="template" v-if="dialogVisibles">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:action="upUrl"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="handleUpSuccess"
|
||||
:on-remove="handleRemove"
|
||||
:headers="upHeaders"
|
||||
:file-list="fileList"
|
||||
:limit="1"
|
||||
accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx"
|
||||
>
|
||||
<el-button size="small" type="primary">上传文件</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="text-align: right">
|
||||
<el-button type="danger" @click="dialogVisibles = false">取消</el-button>
|
||||
<el-button type="primary" @click="confirmfk('Forms')">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 2px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>执行详情</span>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading2"
|
||||
:data="recordList"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
height="300px"
|
||||
style="margin-top:2px"
|
||||
@selection-change="handleSelectRecords"
|
||||
>
|
||||
<el-table-column label="序号" type="index" align="center" width="55"/>
|
||||
<el-table-column label="报送类型">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.action==='ablity:create'">新增能力</span>
|
||||
<span v-else-if="scope.row.action==='service:update'">更新服务</span>
|
||||
<span v-else-if="scope.row.action==='quali:update'">更新资质</span>
|
||||
<span v-else-if="scope.row.action==='quali:create'">新增资质</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="确认情况">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.confirmed" effect="plain">已确认</el-tag>
|
||||
<el-tag type="danger" effect="plain" v-else>未确认</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人">
|
||||
<template slot-scope="scope">{{ scope.row.content_name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作时间">
|
||||
<template slot-scope="scope">{{ scope.row.update_time }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="改动内容">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.value2.name">{{ scope.row.value2.name}}</span>
|
||||
<span v-else>{{ scope.row.value2}}</span>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="文件">
|
||||
<template slot-scope="scope">
|
||||
<el-link v-if="scope.row.file" :href="scope.row.file" target="_blank" type="primary">
|
||||
{{scope.row.name}}
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="240px"
|
||||
fixed="right"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-link
|
||||
v-if="!scope.row.confirmed"
|
||||
type="success"
|
||||
size="small"
|
||||
@click="handleRecord('confirm', scope.row )"
|
||||
>确认
|
||||
</el-link>
|
||||
<el-link
|
||||
size="small"
|
||||
@click="handleRecord( 'view', scope.row )"
|
||||
>查看
|
||||
</el-link>
|
||||
<el-link
|
||||
v-if="!scope.row.confirmed"
|
||||
type="danger"
|
||||
size="small"
|
||||
@click="handleDelete( scope.row.id )"
|
||||
>删除
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<el-drawer
|
||||
title="记录"
|
||||
:visible.sync="drawer"
|
||||
:with-header="false"
|
||||
size="40%"
|
||||
>
|
||||
<div
|
||||
v-if="data.action==='service:update'"
|
||||
style="padding: 10px 20px;position: relative"
|
||||
>
|
||||
<p style="font-size: 20px;font-weight: bold;">更新服务</p>
|
||||
<p><span style="display: inline-block;width: 100px;font-weight: bold;">原始内容:</span>{{data.value1}}</p>
|
||||
<p><span style="display: inline-block;width: 100px;font-weight: bold;">更新内容:</span>{{data.value2}}</p>
|
||||
<el-button
|
||||
v-if="actionType==='confirm'"
|
||||
style="position: absolute;right:40px;margin-top: 20px"
|
||||
type="primary"
|
||||
@click="confirmClick"
|
||||
>
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
<div
|
||||
v-if="data.action==='ablity:create'"
|
||||
style="padding: 10px 20px;position: relative"
|
||||
>
|
||||
<p style="font-size: 20px;font-weight: bold;">新增能力</p>
|
||||
<p><span style="display: inline-block;width: 100px;font-weight: bold;">能力类型 :</span>{{data.afield_name}}</p>
|
||||
<p><span style="display: inline-block;width: 100px;font-weight: bold;">能力领域:</span>{{data.afield_name}}</p>
|
||||
<p><span style="display: inline-block;width: 100px;font-weight: bold;">上传文件:</span>{{data.file}}</p>
|
||||
<el-link :href="data.file" target="_blank" type="primary">{{data.file}}</el-link>
|
||||
<el-button
|
||||
v-if="actionType==='confirm'"
|
||||
style="position: absolute;right:40px;margin-top: 20px"
|
||||
type="primary"
|
||||
@click="confirmClick"
|
||||
>
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
<quliShow
|
||||
v-if="drawer&&showData.type==='quali:create'"
|
||||
ref="quliShow"
|
||||
:showData="showData"
|
||||
@handleDo="handleDo"
|
||||
></quliShow>
|
||||
<quliShow
|
||||
v-if="drawer&&showData.type==='quli:update'"
|
||||
ref="quliShow"
|
||||
:showData="showData"
|
||||
@handleDo="handleDo"
|
||||
></quliShow>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
qtaskStart, qactionList, qtaskDetail,
|
||||
qactionDelete, qactionItem, qactionConfirm
|
||||
} from "@/api/ability";
|
||||
import {getRecordList, updateRecords} from "@/api/record";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import checkPermission from "@/utils/permission";
|
||||
import quliShow from "@/views/ability/quliShow";
|
||||
import {upUrl, upHeaders} from "@/api/file";
|
||||
|
||||
export default {
|
||||
name: 'qualityTaskDo',
|
||||
components: {Pagination, quliShow},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
dialogVisibles: false,
|
||||
dialogType: "new",
|
||||
activeName: "contenttab",
|
||||
contents: [],
|
||||
depts: [],
|
||||
listLoading: false,
|
||||
listLoading2: false,
|
||||
recordList: [],
|
||||
nowcontent: {},
|
||||
nowdept: {},
|
||||
drawer: false,
|
||||
data: {},
|
||||
showData: {},
|
||||
listQuery: {},
|
||||
selectRecords: [],
|
||||
dgaction: {
|
||||
action: 'init',
|
||||
name: '初始化任务'
|
||||
},
|
||||
upHeaders: upHeaders(),
|
||||
upUrl: upUrl(),
|
||||
fileList: [],
|
||||
Taskdept: {is_yes: true},
|
||||
qtaskId: null,
|
||||
qtaskDepts: [],
|
||||
qtask: {},
|
||||
detailItem: {},
|
||||
actionType: null,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.qtaskId = sessionStorage.getItem('qtaskId');
|
||||
},
|
||||
mounted() {
|
||||
debugger;
|
||||
this.qtaskId = sessionStorage.getItem('qtaskId');
|
||||
this.getQtaskDept();
|
||||
},
|
||||
methods: {
|
||||
checkPermission,
|
||||
getQtaskDept() {
|
||||
debugger;
|
||||
qtaskDetail({qtask: this.qtaskId}).then((res) => {
|
||||
debugger;
|
||||
this.qtaskDepts = res.data.results;
|
||||
this.qtask = res.data.results[0].qtask_;
|
||||
});
|
||||
},
|
||||
handleQtaskStart() {
|
||||
this.$confirm("确认发布任务吗?", "提示")
|
||||
.then(async () => {
|
||||
await qtaskStart(this.qtaskId);
|
||||
location.reload();
|
||||
this.$message.success("成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
//操作处理
|
||||
handleRecord(type, item) {
|
||||
debugger;
|
||||
if (item.action === 'quali:update' || item.action === 'quali:create') {
|
||||
this.data = item;
|
||||
this.showData.data = item;
|
||||
this.showData.type = item.action;
|
||||
this.showData.action = type;
|
||||
} else {
|
||||
this.data = item;
|
||||
this.actionType = type;
|
||||
}
|
||||
this.drawer = true;
|
||||
qactionItem(item.id).then(res => {
|
||||
debugger;
|
||||
console.log(res)
|
||||
})
|
||||
},
|
||||
handleDelete(id) {
|
||||
this.$confirm("确认删除该操作吗?", "提示")
|
||||
.then(async () => {
|
||||
await qactionDelete(id);
|
||||
location.reload();
|
||||
this.$message.success("成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
//操作确认
|
||||
confirmClick() {
|
||||
qactionConfirm(this.data.id).then(res => {
|
||||
debugger;
|
||||
console.log(res)
|
||||
if (res.code === 200) {
|
||||
this.drawer = false;
|
||||
this.getQactionList();
|
||||
}
|
||||
})
|
||||
},
|
||||
handleDo(data) {
|
||||
this.drawer = data;
|
||||
this.getQactionList();
|
||||
},
|
||||
getQactionList() {
|
||||
qactionList(this.listQuery)
|
||||
.then((res) => {
|
||||
this.listLoading2 = false;
|
||||
this.recordList = res.data;
|
||||
})
|
||||
.catch((e) => {
|
||||
this.listLoading2 = false;
|
||||
});
|
||||
},
|
||||
clickRow(row, col, e) {
|
||||
this.listLoading2 = true;
|
||||
this.detailItem = row;
|
||||
this.listQuery = {pageoff: true, qtask: row.qtask, belong_dept: row.dept};
|
||||
this.getQactionList();
|
||||
},
|
||||
handleSelectRecords(val) {
|
||||
let selects = [];
|
||||
for (var i = 0; i < val.length; i++) {
|
||||
selects.push(val[i].id);
|
||||
}
|
||||
this.selectRecords = selects;
|
||||
},
|
||||
handleConfirmDept(scope) {
|
||||
confirmTaskdept(scope.row.id).then(res => {
|
||||
this.getQactionList();
|
||||
this.gettaskdeptall()
|
||||
})
|
||||
},
|
||||
//反馈意见
|
||||
handlePreview(file) {
|
||||
if ("url" in file) {
|
||||
window.open(file.url);
|
||||
} else {
|
||||
window.open(file.response.data.path);
|
||||
}
|
||||
},
|
||||
handleUpSuccess(res, file, filelist) {
|
||||
this.Taskdept.file = res.data.path;
|
||||
this.filename = res.data.name;
|
||||
},
|
||||
handleRemove(file, filelist) {
|
||||
this.Taskdept.file = null;
|
||||
},
|
||||
handleConfirmFK(scope) {
|
||||
this.Taskdept = Object.assign({}, scope.row); // copy obj
|
||||
this.dialogVisibles = true;
|
||||
if (this.Taskdept.file) {
|
||||
this.fileList = [
|
||||
{
|
||||
name: "反馈文件",
|
||||
url: this.Taskdept.file,
|
||||
},
|
||||
];
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Forms"].clearValidate();
|
||||
});
|
||||
},
|
||||
|
||||
async confirmfk(form) {
|
||||
this.$refs[form].validate((valid) => {
|
||||
console.log(this.Taskdept);
|
||||
this.Taskdept.is_yes = true;
|
||||
updateTaskdept(this.Taskdept.id, this.Taskdept).then((res) => {
|
||||
if (res.code >= 200) {
|
||||
this.gettaskdeptall();
|
||||
this.dialogVisibles = false;
|
||||
this.$message.success("成功");
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
handleDeleteDept(scope) {
|
||||
deleteTaskdept(scope.row.id).then(res => {
|
||||
this.gettaskdeptall()
|
||||
})
|
||||
},
|
||||
handleUp2() {
|
||||
if (this.selectRecords.length) {
|
||||
this.$prompt('请输入备注内容', '提示').then(({value}) => {
|
||||
updateRecords({note: value, ids: this.selectRecords}).then(res => {
|
||||
this.$message.success('成功')
|
||||
this.getQactionList();
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
message: "请先选择",
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.term {
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.desc {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.litem {
|
||||
margin-bottom: 4px;
|
||||
margin-left: 2px;
|
||||
cursor: pointer;
|
||||
color: #409eff;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,100 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="ma">资质报送详情</div>
|
||||
<el-form label-width="100px" label-position="left">
|
||||
<el-form-item label="资质名称">
|
||||
{{ data.value2.name }}
|
||||
</el-form-item>
|
||||
<el-form-item label="资质类型">
|
||||
{{ data.value2.type }}
|
||||
</el-form-item>
|
||||
<el-form-item label="资质等级" v-if="data.type!=='OTHER'">
|
||||
<span v-if="data.value2.grade===10">国家级</span>
|
||||
<span v-if="data.value2.grade===20">省级</span>
|
||||
<span v-if="data.value2.grade===30">市级</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="二级等级" v-if="data.type==='OTHER'">
|
||||
{{ data.value2.level }}
|
||||
</el-form-item>
|
||||
<el-form-item label="资质范围">
|
||||
{{data.value2.scope}}
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
{{data.value2.description}}
|
||||
</el-form-item>
|
||||
<el-form-item label="备案城市" v-if="data.type==='OTHER'">
|
||||
{{ data.value2.name }}
|
||||
</el-form-item>
|
||||
<el-form-item label="所在省" v-if="data.type!=='OTHER'">
|
||||
{{ data.value2.province }}
|
||||
</el-form-item>
|
||||
<el-form-item label="所在市" v-if="data.type!=='OTHER'">
|
||||
{{ data.value2.city }}
|
||||
</el-form-item>
|
||||
<el-form-item label="报送人">
|
||||
{{ data.value2.name }}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-divider></el-divider>
|
||||
<div style="text-align: right">
|
||||
<el-button
|
||||
v-if="this.showData.action == 'confirm'"
|
||||
@click="confirm()"
|
||||
type="primary"
|
||||
>
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {upUrl, upHeaders} from "@/api/file";
|
||||
import {qactionConfirm} from "@/api/ability";
|
||||
|
||||
export default {
|
||||
name: "quliShow",
|
||||
props: ["showData"],
|
||||
data() {
|
||||
return {
|
||||
data: null,
|
||||
fileList: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initRecord();
|
||||
},
|
||||
methods: {
|
||||
initRecord() {
|
||||
debugger;
|
||||
console.log(this.showData);
|
||||
this.data = Object.assign({}, this.showData.data);
|
||||
},
|
||||
confirm() {
|
||||
qactionConfirm(this.data.id).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.drawer = false;
|
||||
this.$emit("handleDo", true);
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.ma {
|
||||
margin-bottom: 10px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.litem {
|
||||
margin-left: 2px;
|
||||
cursor: pointer;
|
||||
color: #409eff;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue