0601资质更改

This commit is contained in:
shijing 2022-06-01 15:59:16 +08:00
parent 0dc4b56a13
commit 07e50c71d1
8 changed files with 1427 additions and 379 deletions

View File

@ -120,6 +120,13 @@ export function getAbilityQuality(query) {
params: query params: query
}) })
} }
export function getQualityMy(query) {
return request({
url: `/ability/quali/my/`,
method: 'get',
params: query
})
}
export function getQtask(query) { export function getQtask(query) {
return request({ return request({
url: `/ability/qtask/`, url: `/ability/qtask/`,
@ -148,7 +155,14 @@ export function qtaskStart(id) {
method:'put' method:'put'
}) })
} }
//任务详情
export function qtaskDetail(query) {
return request({
url: `/ability/qorg/`,
method: 'get',
params: query
})
}
export function getQtaskMy(query) { export function getQtaskMy(query) {
return request({ return request({
url: `/ability/qorg/my/`, url: `/ability/qorg/my/`,
@ -196,6 +210,14 @@ export function qactionMy(query) {
params: query params: query
}) })
} }
//我的报送操作
export function qactionList(query) {
return request({
url:`/ability/qaction/`,
method:'get',
params: query
})
}
//报送操作操作记录 //报送操作操作记录
export function qactionItem(id) { export function qactionItem(id) {
return request({ return request({
@ -203,7 +225,7 @@ export function qactionItem(id) {
method:'get', method:'get',
}) })
} }
//报送操作操作记录queren //报送操作操作记录确认
export function qactionConfirm(id) { export function qactionConfirm(id) {
return request({ return request({
url:`/ability/qaction/${id}/confirm/`, 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
})
}

View File

@ -91,7 +91,7 @@ export const asyncRoutes = [
path: 'abilityQuality', path: 'abilityQuality',
name: 'abilityQuality', name: 'abilityQuality',
component: () => import('@/views/ability/abilityQuality'), component: () => import('@/views/ability/abilityQuality'),
meta: { title: '资质情况1', perms: ['qualification_view'] } meta: { title: '资质情况(新)', perms: ['qualification_view'] }
}, },
{ {
path: 'cma', path: 'cma',
@ -124,7 +124,14 @@ export const asyncRoutes = [
path: 'qualityTask', path: 'qualityTask',
name: 'QualityTask', name: 'QualityTask',
component: () => import('@/views/ability/qualityTask.vue'), 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', path: 'mQualityTask',
@ -132,26 +139,12 @@ export const asyncRoutes = [
component: () => import('@/views/ability/mQualityTask.vue'), component: () => import('@/views/ability/mQualityTask.vue'),
meta: { title: '我的资质报送任务', perms: ['qtask_my'] } meta: { title: '我的资质报送任务', perms: ['qtask_my'] }
}, },
{ /*{
path: 'qactionMy', path: 'qactionMy',
name: 'qactionMy', name: 'qactionMy',
component: () => import('@/views/ability/qactionMy.vue'), component: () => import('@/views/ability/qactionMy.vue'),
meta: { title: '资质报送操作', perms: ['qtask_my'] } 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', path: 'recordselect',
name: 'Recordselect', name: 'Recordselect',

View File

@ -1,113 +1,115 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-row :gutter="10">
<el-row :gutter="6"> <el-col :span="6">
<!-- <el-col :xs="24" :md="4"> <el-card>
<el-select v-model="listQuery.org" placeholder="所属单位" @change="handleFilter" clearable style="width: 100%;"> <el-table
<el-option v-loading="listLoading"
v-for="item in org" :data="orgList"
: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="资质/服务"
style="width: 100%;" style="width: 100%;"
class="filter-item" border
@keyup.enter.native="handleFilter" 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-card>
<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>
<pagination </el-col>
v-show="qualityList.count > 0" </el-row>
:total="qualityList.count"
:page.sync="listQuery.page"
:limit.sync="listQuery.page_size"
@pagination="getList"
/>
</el-card>
</div> </div>
</template> </template>
<script> <script>
import {getOrgList} from "@/api/org"; import {getOrgList,getOrgAll} from "@/api/org";
import {getCMAGroup} from "@/api/cma"; import {getCMAGroup} from "@/api/cma";
import { getAbilityQuality} from "@/api/ability"; import { getAbilityQuality} from "@/api/ability";
import checkPermission from "@/utils/permission"; import checkPermission from "@/utils/permission";
@ -125,18 +127,27 @@
org: '', org: '',
search: '' search: ''
}, },
leftHeight:null,
rightHeight:null,
org: [], org: [],
orgList: [],
listLoading: true, listLoading: true,
dialogVisible: false, dialogVisible: false,
dialogType: "new", dialogType: "new",
typeOptions: { typeOptions: {
'CMA': '', 10: '国家级',
'CNAS': '', 20: '省级',
'OTHER': '' 30: '市级'
}, },
}; };
}, },
mounted() { 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.getList();
this.getGroup(); this.getGroup();
}, },
@ -155,15 +166,21 @@
getOrgList({ can_supervision: true }).then((res) => { getOrgList({ can_supervision: true }).then((res) => {
this.org = res.data; this.org = res.data;
}); });
/*getCMAGroup({page: 0, group_by: 'sszx'}).then((response) => { getOrgList({service_ok:1}).then((response) => {
this.org = response.data; this.orgList = response.data;
});*/ });
}, },
handleFilter() { handleFilter() {
this.getList(); this.getList();
}, },
resetFilter() { resetFilter() {
this.listQuery.search = ''; 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

View File

@ -105,6 +105,13 @@
@pagination="getList" @pagination="getList"
/> />
</el-card> </el-card>
<el-drawer
title="我是标题"
:visible.sync="drawer"
:direction="rtl"
>
<span>我来啦!</span>
</el-drawer>
</div> </div>
</template> </template>
@ -129,8 +136,9 @@
search: '' search: ''
}, },
org: [], org: [],
drawer:false,
taskOptions: [], taskOptions: [],
listLoading: true, listLoading: false,
dialogVisible: false, dialogVisible: false,
dialogType: "new", dialogType: "new",
typeOptions: { typeOptions: {

View File

@ -1,13 +1,37 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<el-input
v-model="pageForm.search"
placeholder="任务名"
style="width: 300px"
class="filter-item"
@keyup.enter.native="handleFilter"
/>
<el-button <el-button
class="filter-item"
type="primary" type="primary"
icon="el-icon-plus" icon="el-icon-search"
@click="handleAdd" @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>
<el-card style="margin-top: 10px"> <el-card style="margin-top: 10px">
<el-table <el-table
@ -21,8 +45,14 @@
> >
<el-table-column type="index" width="50"/> <el-table-column type="index" width="50"/>
<el-table-column label="任务名称" prop="name"></el-table-column> <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="end_date"></el-table-column>
<el-table-column label="发布状态" prop="state"></el-table-column>
<el-table-column <el-table-column
align="center" align="center"
label="操作" label="操作"
@ -30,18 +60,21 @@
fixed="right" fixed="right"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-link
type="success"
size="small"
@click="handleClick(scope)"
>执行</el-link>
<el-link <el-link
v-if="scope.row.state==='待发布'" v-if="scope.row.state==='待发布'"
type="primary" type="primary"
size="small" size="small"
icon="el-icon-edit"
@click="handleEdit(scope)" @click="handleEdit(scope)"
>编辑</el-link> >编辑</el-link>
<el-link <el-link
v-if="scope.row.state==='待发布'" v-if="scope.row.state==='待发布'"
type="warning" type="warning"
size="small" size="small"
icon="el-icon-s-promotion"
@click="handleStart(scope)" @click="handleStart(scope)"
>发布</el-link> >发布</el-link>
</template> </template>
@ -116,6 +149,7 @@
pageForm:{ pageForm:{
page:1, page:1,
page_size:20, page_size:20,
search:''
}, },
fileList:[], fileList:[],
updateId:null, updateId:null,
@ -124,7 +158,9 @@
end_date: "", end_date: "",
orgs: [], orgs: [],
}, },
taskList: {}, taskList: {
count:0,
},
orgData: [], orgData: [],
typeOptions: [], typeOptions: [],
multiple: true, multiple: true,
@ -144,6 +180,16 @@
this.getQtaskList(); this.getQtaskList();
}, },
methods:{ 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(){ getOrgsList(){
getOrgList({ can_supervision: true }).then((res) => { getOrgList({ can_supervision: true }).then((res) => {
this.orgData = res.data; this.orgData = res.data;
@ -223,8 +269,16 @@
}, },
getrecordlist(){ getrecordlist(){
this.getQtaskList(); this.getQtaskList();
}
}, },
handleFilter() {
this.getQtaskList();
},
resetFilter() {
this.pageForm.search = '';
this.getQtaskList();
},
},
} }
</script> </script>

View File

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

View File

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