问题整体修改

master
lion 2 years ago
parent 4e15588dcc
commit 928ed9260e

@ -2,15 +2,21 @@ import request from "@/utils/request";
function customParamsSerializer(params) {
let result = '';
for (let key in params) {
if (params.hasOwnProperty(key)) {
if (Array.isArray(params[key])) {
params[key].forEach((item,index) => {
result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`;
});
} else {
result += `${key}=${params[key]}&`;
if(key=='filter'){
if (params.hasOwnProperty(key)) {
if (Array.isArray(params[key])) {
params[key].forEach((item,index) => {
result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`;
});
} else {
result += `${key}=${params[key]}&`;
}
}
}else{
result += `${key}=${params[key]}&`;
}
}
return result.slice(0, -1);
}

@ -0,0 +1,120 @@
<template>
<!-- 查询配置 -->
<div style="padding: 0px 20px">
<div ref="lxHeader">
<lx-header icon="md-apps" text="安全生产通讯稿" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<Input v-model="select.keyword" style="width: 150px;margin-right: 10px;" placeholder="关键字搜索" />
<Button type="primary" @click="getList" style="margin-right: 10px;">查询</Button>
<Button type="primary" style="margin-right: 10px;" @click="editArticle('add')"></Button>
</div>
</slot>
</lx-header>
</div>
<xy-table :list="list" :total="total" stripe @pageSizeChange="e => {select.page_size = e,getList()}"
@pageIndexChange="e => {select.page = e,getList()}" :table-item="table">
<template v-slot:btns>
<el-table-column align='center' label="操作" width="200" header-align="center">
<template slot-scope="scope">
<Button style="margin-right:5px;margin-bottom:5px;" type="primary" size="small"
@click="editArticle('editor',scope.row.id)">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="deleteList(scope.row.id)">
<Button type="primary" ghost size="small" style='margin-left:5px;margin-bottom:5px;'>删除</Button>
</Poptip>
</template>
</el-table-column>
</template>
</xy-table>
<addArticle ref="addArticle" @refresh="getList"></addArticle>
</div>
</template>
<script>
import {
index,
destroy
} from '@/api/task/newplan.js'
import addArticle from "@/views/dashboard/components/addArticle.vue"
export default {
components: {
addArticle
},
data() {
return {
select: {
keyword: "",
page: 1,
page_size: 15,
table_name: 'articles',
with_relations:['image']
},
list: [],
table: [{
label: "标题",
prop: 'title',
align: 'left',
}, {
label: "发布时间",
prop: 'created_at',
align: 'center',
width: 180
}],
total: 0
}
},
created() {
this.getList()
},
mounted() {},
methods: {
async getList() {
const res = await index({
...this.select,
filter: [{
key: 'title',
op: 'like',
value: this.select.keyword
}],
})
this.list = res.data
this.total = res.total
},
editArticle(type, id) {
if (id) {
this.$refs.addArticle.id = id
}
this.$refs.addArticle.type = type
this.$refs.addArticle.isShow = true
},
deleteList(id) {
var that = this;
destroy({
id: id,
table_name: 'articles',
}).then(response => {
this.$Message.success('删除成功');
this.getList()
}).catch(error => {
console.log(error)
reject(error)
})
}
}
};
</script>
<style>
.dialogConcent {
overflow-y: auto;
}
.el-tree-node__label {
text-wrap: wrap;
}
.el-tree-node__content {
height: auto;
}
</style>

@ -0,0 +1,239 @@
<template>
<div>
<xy-dialog ref="dialog" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增资讯' : '编辑资讯'" :form="form"
:rules='rules' @submit="submit">
<template v-slot:title>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>标题
</div>
<div class="xy-table-item-content">
<el-input v-model="form.title" placeholder="请输入标题" clearable style="width: 400px;"></el-input>
</div>
</div>
</template>
<!-- <template v-slot:time>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>发布时间
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 400px;" v-model="form.time" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
placeholder="选择发布时间">
</el-date-picker>
</div>
</div>
</template> -->
<template v-slot:image_id>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>标题图片
</div>
<div class="xy-table-item-content">
<el-upload :action="action" :limit='1' class='upload-demo' list-type="picture-card" :file-list="pictureList"
ref="pictureUpload" style="width:600px" :auto-upload="true" :data="uploadOther"
:on-success="handlesuccess" :on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
</div>
</div>
</template>
<template v-slot:file_ids>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>附件
</div>
<div class="xy-table-item-content">
<el-upload :action="action" class='upload-demo' :file-list="fileList" ref="pictureUpload"
style="width:400px" :auto-upload="true" :data="uploadOther" :on-success="handlesuccessFile"
:on-remove="handleRemoveFile">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</div>
</div>
</template>
<template v-slot:content>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>内容
</div>
<div class="xy-table-item-content">
<div style="width: 99.9%;">
<tinymce v-model="form.content" ref="tiny" :height="300" />
</div>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import {
Message
} from 'element-ui'
import {
show,
save,
destroy
} from '@/api/task/newplan.js'
import {
getToken
} from '@/utils/auth'
import Tinymce from '@/components/Tinymce'
export default {
components: {
Tinymce
},
data() {
return {
isShow: false,
type: 'add',
id: '',
action: `${process.env.VUE_APP_BASE_API}api/admin/upload-file`,
uploadOther: {
token: ""
},
fileList: [],
pictureList: [],
form: {
title: '',
image_id: '',
file_ids: [],
content: '',
},
rules: {
title: [{
required: true,
message: '请输入标题'
}]
}
}
},
created() {
this.uploadOther.token = getToken();
},
methods: {
handleRemove(file, fileList) {
this.pictureList = fileList
},
handlesuccess(response, file, fileList) {
this.pictureList = fileList
},
handleRemoveFile(file, fileList) {
this.fileList = fileList
},
handlesuccessFile(response, file, fileList) {
this.fileList = fileList
},
submit() {
if (this.id) {
this.form.id = this.id
}
if (this.type == 'add') {
this.form.id = ''
}
if (this.pictureList.length > 0) {
if (this.pictureList[0].response) {
this.form.image_id = this.pictureList[0].response.id
} else {
this.form.image_id = this.pictureList[0].id
}
} else {
Message({
type: 'warning',
message: '请上传标题图片'
})
this.form.image_id = ''
return
}
let _files = []
if (this.fileList.length > 0) {
for (var h of this.fileList) {
if (h.response) {
_files.push(h.response.id)
} else {
_files.push(h.id)
}
}
this.form.file_ids = _files
} else {
this.form.file_ids = []
}
save({
...this.form,
table_name: 'articles',
}).then(res => {
Message({
type: 'success',
message: this.type === 'add' ? '新增成功' : '编辑成功'
})
this.isShow = false
this.$emit('refresh')
})
},
getDetail() {
show({
id: this.id,
table_name: 'articles',
with_relations: ['image']
}).then(res => {
this.form = {
title: res?.title,
image_id: res?.image_id,
file_ids: res?.file_ids,
content: res?.content,
}
if(res.image){
this.pictureList.push({
id:res.image.id,
name:res.image.original_name,
url:res.image.url
})
}
let _files = []
if(res.files && res.files.length>0){
res.files.map(item=>{
_files.push({
id:item.id,
name:item.original_name,
url:item.url
})
})
}
this.fileList = _files
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
this.getDetail()
}
} else {
this.id = ''
this.fileList = []
this.pictureList = []
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
</style>

@ -3,36 +3,64 @@
<!-- 查询配置 -->
<div style="padding: 0px 20px 20px 20px;background: #EFF2F9;">
<!-- <div @click='logout'>退出</div> -->
<el-row :gutter="20" class='elrows'>
<el-col :span="24">
<el-row :gutter="20" class='elrows'>
<el-col :span="12">
<div ref="lxTable" class="table-tree">
<div
style="display:flex;justify-content: space-between;;padding: 15px;padding-left: 20px;background-color: #fff;"
class="form-sub-title">
<el-link type="primary" icon="el-icon-s-data" style="font-size:18px"
href="#/dashboard/article">资讯动态</el-link>
</div>
<div class="overall">
<el-carousel height="330px">
<el-carousel-item v-for="item in articleSwiper" :key="item.id">
<el-image
style="width: 100%; height: 100%"
:src="item.image.url"></el-image>
<h3 style="position: absolute;bottom: 0;width: 100%;padding: 10px;color: #fff;background: rgba(0, 0, 0, 0.4);" class="small">{{ item.title }}</h3>
</el-carousel-item>
</el-carousel>
</div>
</div>
</el-col>
<div ref="lxTable" stripe class="table-tree">
<div style="display:flex;justify-content: space-between;padding: 15px;background-color: #fff;padding-bottom:5px;" class="form-sub-title">
<el-link icon='el-icon-user-solid' type="primary" style="font-size:18px">科室任务统计</el-link>
<div>
<el-date-picker
@change="changeDepYear"
v-model="depYear"
type="year"
format="yyyy"
value-format="yyyy"
placeholder="选择年">
</el-date-picker>
</div>
<el-col :span="12">
<div ref="lxTable" class="table-tree" style="padding: 15px;background-color: #fff;">
<div style="padding-bottom: 15px;background-color: #fff;display: flex;align-items: center;"
class="form-sub-title">
<el-link icon="el-icon-s-opportunity" type="primary" style="font-size:18px;margin-right:5px"
href="#">动态信息</el-link>
</div>
<div style="height:450px;background-color: #fff;padding: 15px;padding-top:0">
<div style="height:450px">
<!-- :showSummary='true' :summaryMethod="summaryDep" -->
<xy-table :list="depList" :showIndex="false" stripe :isPage="false" :height="'423px'" :table-item="depTable">
<template v-slot:btns>
<div></div>
</template>
</xy-table>
<div>
<div>
<!-- <el-carousel arrow="nerver" trigger="click" height="310px" :autoplay='isautoplay' :interval="5000" direction="vertical">
<el-carousel-item v-for="item in activeAllList"> -->
<xy-table :list="activeAllList" stripe ref="activeTable" :isPage="false" :height="'330px'" id="boxed"
:table-item="activeTable">
<template v-slot:btns>
<el-table-column align='center' label="操作" width="80" header-align="center">
<template slot-scope="scope">
<Button v-if="scope.row.is_id=='mission'" type="primary" size="small" @click="checkUnits(scope.row.mission_id,'show')"></Button>
<Button v-else-if="scope.row.is_id=='plan'" type="primary" size="small" @click="showPlan(scope.row.mission_id,'show')"></Button>
<Button v-else type="primary" size="small" @click="showArticle(scope.row.id)"></Button>
</template>
</el-table-column>
</template>
</xy-table>
<!-- </el-carousel-item>
</el-carousel> -->
</div>
</div>
</div>
</el-col>
</div>
</div>
</el-col>
<el-col :span="24">
<div ref="lxTable" stripe class="table-tree">
@ -223,6 +251,35 @@
</div>
</div>
</el-col>
<el-col :span="24">
<div ref="lxTable" stripe class="table-tree">
<div style="display:flex;justify-content: space-between;padding: 15px;background-color: #fff;padding-bottom:5px;" class="form-sub-title">
<el-link icon='el-icon-user-solid' type="primary" style="font-size:18px">科室任务统计</el-link>
<div>
<el-date-picker
@change="changeDepYear"
v-model="depYear"
type="year"
format="yyyy"
value-format="yyyy"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div style="height:450px;background-color: #fff;padding: 15px;padding-top:0">
<div style="height:450px">
<!-- :showSummary='true' :summaryMethod="summaryDep" -->
<xy-table :list="depList" :showIndex="false" stripe :isPage="false" :height="'423px'" :table-item="depTable">
<template v-slot:btns>
<div></div>
</template>
</xy-table>
</div>
</div>
</div>
</el-col>
<el-col :span="12">
<div ref="lxTable" class="table-tree">
@ -326,40 +383,6 @@
</div>
</div>
</el-col>
<el-col :span="24">
<div ref="lxTable" class="table-tree" style="padding: 15px;background-color: #fff;">
<div style="padding-bottom: 15px;background-color: #fff;display: flex;align-items: center;"
class="form-sub-title">
<el-link icon="el-icon-s-opportunity" type="primary" style="font-size:18px;margin-right:5px"
href="#">动态信息</el-link>
</div>
<div>
<div>
<!-- <el-carousel arrow="nerver" trigger="click" height="310px" :autoplay='isautoplay' :interval="5000" direction="vertical">
<el-carousel-item v-for="item in activeAllList"> -->
<xy-table :list="activeAllList" stripe ref="activeTable" :isPage="false" :height="'310px'" id="boxed"
:table-item="activeTable">
<template v-slot:btns>
<el-table-column align='center' label="操作" width="80" header-align="center">
<template slot-scope="scope">
<Button v-if="scope.row.is_id=='mission'" type="primary" size="small" @click="checkUnits(scope.row.mission_id,'show')"></Button>
<Button v-else-if="scope.row.is_id=='plan'" type="primary" size="small" @click="showPlan(scope.row.mission_id,'show')"></Button>
<Button v-else type="primary" size="small" @click="showArticle(scope.row.id)"></Button>
</template>
</el-table-column>
</template>
</xy-table>
<!-- </el-carousel-item>
</el-carousel> -->
</div>
</div>
</div>
</el-col>
</el-row>
<showPlan ref='showPlan'></showPlan>
@ -400,7 +423,9 @@ import {
chartinspection,
chartDepartment
} from "@/api/chart.js";
import {
index as indexSwiper
} from '@/api/task/newplan.js'
import {
mapGetters
} from 'vuex'
@ -436,6 +461,7 @@ export default {
login_id: '',
department_id: '',
isautoplay:true,
articleSwiper:[],
activeCount:1,
activeName: 'first',
activeAllList:[],
@ -1009,7 +1035,8 @@ export default {
console.log("this.stateObj",this.stateObj)
// this.updateMissionPlan()
this.getUserId()
this.getUnitTypeList()
this.getUnitTypeList()
this.getSwiperList()
// this.getQuestion()
// this.getActiveList()
@ -1022,6 +1049,16 @@ export default {
},
methods: {
//
async getSwiperList() {
const res = await indexSwiper({
page:1,
page_size:5,
table_name: 'articles',
with_relations:['image']
})
this.articleSwiper = res.data
},
async logout(){
await this.$store.dispatch("user/logout")
this.$router.push(`/login?redirect=${this.$route.fullPath}`)

@ -309,7 +309,7 @@
}],
date: [{
required: true,
message: '请选择检查日期',
message: '请选择发现时间',
trigger: 'blur'
}],
remark: [{

@ -239,7 +239,7 @@
// }],
date: [{
required: true,
message: '请选择检查日期'
message: '请选择发现时间'
}],
siteName: [{
required: true,

@ -2,7 +2,7 @@
<div>
<xy-dialog ref="dialog" :is-show.sync="isShow" type="form" :title="type === 'add' ? '检查问题' : '编辑问题'" :form="form"
:rules="rules" @submit="submit">
<template v-slot:mission_id>
<template v-slot:mission_id v-if="form.mission_id!=0" :style="{'flex-basis':form.mission_id!=0?'50%':'0'}">
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>任务名称
@ -18,11 +18,11 @@
<template v-slot:date>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold;">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>检查日期
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>发现时间
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 400px;" v-model="form.date" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" type="date" placeholder="选择检查日期">
value-format="yyyy-MM-dd" type="date" placeholder="选择发现时间">
</el-date-picker>
</div>
</div>
@ -251,19 +251,7 @@
placeholder="请输入问题描述" clearable>
</el-input>)
}
},
{
label:'整改建议',
prop:'tips',
width:180,
customFn:(row,scope)=>{
return(<el-input v-model={this.patrol_list[scope.$index].tips} type='textarea'
placeholder="请输入整改建议" clearable>
</el-input>)
}
},
{
},{
label:'问题类型',
prop:'ask_id',
width:180,
@ -280,6 +268,18 @@
</el-select>)
}
},
{
label:'整改建议',
prop:'tips',
width:180,
customFn:(row,scope)=>{
return(<el-input v-model={this.patrol_list[scope.$index].tips} type='textarea'
placeholder="请输入整改建议" clearable>
</el-input>)
}
},
{
label:'检查地点',
prop:'siteName',
@ -386,7 +386,7 @@
groups:'',
showgroups:"",
patrol_list:[],
ask_introduce: '',
ask_id: '',
site_id: '',
address: '',
@ -396,7 +396,7 @@
ask_department: '',
accept_department_ids:[],
ask_introduce: '',
tips: '',
file_ids: [],
},
@ -408,7 +408,7 @@
// }],
date: [{
required: true,
message: '请选择检查日期'
message: '请选择发现时间'
}],
// siteName: [{
// required: true,
@ -803,6 +803,8 @@
this.form.mission_id = newval
this.hasMissionId = true
this.getGroups(newval)
}else{
this.form.mission_id = 0
}
},
mapform(newVal, oldVal) {

@ -286,6 +286,19 @@
},
handlesuccess(response, file, fileList) {
this.pictureList = fileList
},
setMainId(dId,aId){
if(dId){
let that = this
this.form.main_department_id = dId ? dId : ''
this.form.main_admin_id = aId ? aId : ''
this.userdata.map(item => {
if (item.department_id == dId) {
this.userOptions = item.children
}
})
}
},
async getDetail() {
const res = await get(this.id)

@ -100,6 +100,19 @@
</div>
</div>
</div>
<div v-if="showUnit4Type">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>工作项目
</div>
<div class="xy-table-item-content">
<el-select v-model="form.menu" @change="changeMenu" style="width: 400px;" placeholder="请选择">
<el-option v-for="item in menuList" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</div>
</div>
</div>
<div v-if="is_what_unitType=='学习'">
@ -149,18 +162,31 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>责任人(科室)
</div>
<div class="xy-table-item-content" style="width:400px">
<el-select style="width:48%;margin-right:2%" v-model="form.main_department_id" @change="changeDeptOptions"
<el-select style="width:48%;margin-right:2%" :disabled="form.main_department_id&&!stateObj.is_chuzhang?true:false" v-model="form.main_department_id" @change="changeDeptOptions"
placeholder="请选择部门">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
<el-select style="width:48%;" v-model="form.main_admin_id" placeholder="请选择部门人员">
<el-select style="width:48%;" :disabled="form.main_admin_id&&!stateObj.is_chuzhang?true:false" v-model="form.main_admin_id" placeholder="请选择部门人员">
<el-option v-for="item in userOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</div>
<div v-if="showUnit4Type">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>性质级别
</div>
<div class="xy-table-item-content">
<el-select v-model="form.level" @change="changeLevel" style="width: 400px;" placeholder="请选择">
<el-option v-for="(item,index) in levelList" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</div>
</div>
</div>
<div v-if="!plan_unit">
<div v-if="type!='send'">
<div class="xy-table-item">
@ -427,7 +453,11 @@
import {
contactGroup
} from '../js/index.js'
import elSelectTree from '@/components/selectTree'
import elSelectTree from '@/components/selectTree'
import {
listregulation
} from "@/api/lawsfile/regulation.js";
import state from '@/store/modules/user.js'
// import mixins from '../mixins/mixins.js';
export default {
// mixins:[mixins],
@ -439,6 +469,7 @@
return {
isShow: false,
type: 'add',
stateObj:{},
typeName:'新增任务',
plan_unit:'', //
subtitle:'',
@ -488,7 +519,9 @@
unitTypeList: [],
unit4TypeList:[],
missionPlanList: [],
leads_list: {},
leads_list: {},
menuList: [],
levelList: [],
form: {
name: '',
@ -586,12 +619,14 @@
},
created() {
// getUser()
this.uploadOther.token = getToken();
this.uploadOther.token = getToken();
this.stateObj = state.state
this.loadUser()
this.loadDeptOptions()
// this.getLeads()
this.getMissionPlan()
this.getUnitTypeList()
this.getUnitTypeList()
this.getMenus()
},
methods: {
setNameContent(name, content) {
@ -602,13 +637,14 @@
if(dId){
let that = this
this.form.main_department_id = dId ? dId : ''
this.form.main_admin_id = aId ? aId : ''
this.userdata.map(item => {
if (item.department_id == dId) {
this.userOptions = item.children
console.log(" this.userOptions1", this.userOptions)
setTimeout(function() {
that.form.main_admin_id = aId ? aId : ''
}, 1000)
// console.log(" this.userOptions1", this.userOptions)
// setTimeout(function() {
// that.form.main_admin_id = aId ? aId : ''
// }, 1000)
}
})
}
@ -666,6 +702,36 @@
}
})
}
},
async getMenus(){
var that = this;
await listregulation(1, 20).then(res => {
this.menuList = res
}).catch(error => {
console.log(error)
})
},
changeMenu(e) {
if (e) {
this.form.level = ''
this.form.level_id = ''
this.menuList.map(item => {
if (e === item.name) {
this.form.menu_id = item.id
this.levelList = item.children ? item.children: [],
this.menuSort = item.sort
}
})
}
},
changeLevel(e){
if(e){
this.levelList.map((item,index)=>{
if(e===item.name){
this.form.level_id = item.id
}
})
}
},
openQs() {
this.$refs.addQuestion.qsShow = true

@ -813,7 +813,7 @@
// }
// }
, {
label: "检查日期",
label: "发现时间",
prop: 'date',
width: 110,
}, {

@ -40,7 +40,7 @@
<el-descriptions-item>
<template slot="label">
检查日期
发现时间
</template>
{{showform.date}}
</el-descriptions-item>

@ -5,8 +5,8 @@
<!-- ${type_name} -->
<template v-slot:steps>
<el-steps :active="steps_active" finish-status="success" direction="vertical">
<el-step title="问题"></el-step>
<el-step title="整改意见"></el-step>
<el-step title="问题描述"></el-step>
<el-step title="整改措施"></el-step>
<!-- <el-step title="整改接收"></el-step> -->
<el-step title="整改反馈"></el-step>
<!-- <el-step title="审核"></el-step> -->
@ -16,14 +16,14 @@
<template v-slot:contents>
<div id='print'>
<div>
<el-divider>问题</el-divider>
<el-divider>问题描述</el-divider>
<div>
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item>
<template slot="label">
任务名称
</template>
{{showform.mission?showform.mission.name:''}}
{{showform.mission_id===0?"日常巡查":(showform.mission?showform.mission.name:'')}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
@ -37,10 +37,15 @@
</template>
{{showform.admin?showform.admin.name:''}}
</el-descriptions-item>
<el-descriptions-item span='4'>
<template slot="label">
问题描述
</template>
{{showform.ask_introduce?showform.ask_introduce:''}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
检查日期
发现时间
</template>
{{showform.date}}
</el-descriptions-item>
@ -72,12 +77,7 @@
{{showform.ask_department?showform.ask_department:''}}
</el-descriptions-item>
<el-descriptions-item span='4'>
<template slot="label">
问题描述
</template>
{{showform.ask_introduce?showform.ask_introduce:''}}
</el-descriptions-item>
<el-descriptions-item span='4'>
<template slot="label">
整改建议
@ -98,7 +98,7 @@
</div>
<!-- 整改意见 -->
<div>
<el-divider>整改意见</el-divider>
<el-divider>整改措施</el-divider>
<div v-if="(showform.status==0||showform.status==8||showform.status==1)&&(is_guiji||is_chuzhang)||is_admin" style="border: 5px solid #8CC5FF;">
<el-descriptions class="margin-top" :column="4">
<el-descriptions-item span="2" :labelStyle="{'display':'none'}" contentClassName="wraps" :colon='false'>
@ -113,7 +113,17 @@
</el-select>
</div>
</div>
<div style="display: flex;width:100%;padding-bottom:12px">
<div style="margin-right:10px;min-width: 120px;text-align: right;">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改意见
</div>
<div>
<el-select v-model="form.deal_id" filterable clearable placeholder="请选择整改意见" style="width: 300px;">
<el-option v-for="item in fixList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div>
<div style="display: flex;width:100%;">
<div style="margin-right:10px;min-width: 120px;text-align: right;">备注
</div>
@ -244,7 +254,7 @@
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item>
<template slot="label">
规计科确认结果
确认结果
</template>
<div>
<span v-if='showform.status==6'>
@ -864,13 +874,14 @@ import elSelectTree from '@/components/selectTree'
steps_active: 1,
showReason:true,
showTarget:true,
fixList:[],
form: {
steps: '',
contents:'',
status: '',
is_hidden:null,
is_hidden:null,
deal_id:'',
check_leader: '',
check_main: '',
leader_status: '',
@ -981,7 +992,8 @@ import elSelectTree from '@/components/selectTree'
created() {
this.uploadOther.token = getToken();
this.getLeads()
this.getUnit()
this.getUnit()
this.getFixList()
this.loadDeptOptions()
this.loadUser()
},
@ -1201,6 +1213,10 @@ import elSelectTree from '@/components/selectTree'
this.showPicUrl = file.url;
this.showPic = true;
},
async getFixList() {
const res = await getparameteritem('fix_options')
this.fixList = res.detail
},
async getUnit() {
const res = await getparameteritem('unitTypeList')
for(var k of res.detail){
@ -1272,7 +1288,8 @@ import elSelectTree from '@/components/selectTree'
//
status: res?.status,
accept_status: '',
accept_status: '',
deal_id:res?.deal_id,
check_leader: res.check_leader == 1 ? 1 : 0,
check_main: res.check_main == 1 ? 1 : 0,
is_hidden:res?.is_hidden,

@ -56,7 +56,8 @@
} from '@/utils/contactTable.js'
import addOutline from '../list/components/addOutline.vue'
import addPlan from '../list/components/addPlan.vue'
import addUnit from '../list/components/addUnit.vue'
import addUnit from '../list/components/addUnit.vue'
import state from '@/store/modules/user.js'
export default {
components: {
addOutline,
@ -137,7 +138,8 @@
}
},
created() {
// this.getMenuList()
// this.getMenuList()
this.stateObj = state.state
this.getList()
},
methods: {
@ -154,7 +156,7 @@
op: 'eq',
value: this.select.year
}, {
key: 'name',
key: 'content',
op: 'like',
value: this.select.keyword
}],
@ -192,11 +194,13 @@
this.$refs.addUnit.setType(type)
this.$refs.addUnit.setNameContent(row.content,row.flow)
this.$refs.addUnit.setMenuLevel(row.menu,row.level,row.menu_id,row.level_id)
this.$refs.addUnit.setMainId(this.stateObj.department_id,this.stateObj.login_id)
this.$refs.addUnit.isShow = true
},
editPlan(row,type){
this.$refs.addPlan.type="add"
this.$refs.addPlan.setMenuLevel(row)
this.$refs.addPlan.setMainId(this.stateObj.department_id,this.stateObj.login_id)
this.$refs.addPlan.isShow = true
},
toUrlPlan(){

@ -229,8 +229,7 @@
table:[{
label:"问题描述",
prop:'ask_introduce',
align:'left',
width:180
align:'left'
},{
label:"问题类型",
prop:'ask.value',
@ -239,7 +238,8 @@
label:"问题来源",
prop:'missionName',
// width:180,
align:'left'
align:'left',
width:240,
},{
label:"发现日期",
prop:'date',
@ -273,109 +273,6 @@
</div>)
}
},{
label:"状态",
prop:'status',
width:80,
customFn:(row)=>{
return(<div>
{
this.statusLabel.map(item=>{
if(item.id==row.status){
return(<el-tag type={item.type}>{item.value}</el-tag>)
}
})
}
</div>)
}
},{
label:"检查站点/地点",
prop:'site.name',
align:'left',
width:120,
formatter:(cell,data,value,index)=>{
if(cell.site){
return cell.site.name
}else{
return cell.address
}
}
},{
label:"问题图片",
prop:'_files',
width:80,
customFn: (row) => {
let arr = []
return ( <div style = {
{
whiteSpace:'normal'
}
}>{
row.files.length>0?
row.files.map(item=>{
arr.push(item.url)
}):''
}
{
arr.length>0?
<el-image
style={
{
width:'60px',
height:'60px'
}
}
src = {
arr[0]
}
preview-src-list={
arr
}
></el-image>:''
}
</div>)
}
},{
label:"整改图片",
prop:'fix_files',
width:80,
customFn: (row) => {
let arr = []
return (<div style = {
{
whiteSpace:'normal'
}
}>{
row.fix_files.length>0?
row.fix_files.map(item=>{
arr.push(item.url)
}):''
}
{
arr.length>0?
<el-image
style={
{
width:'60px',
height:'60px',
marginLeft:'5px'
}
}
src = {
arr[0]
}
preview-src-list={
arr
}
></el-image>:''
}
</div>)
}
},{
label:"整改完成日期",
prop:'fix_end_date',
width:110,
},{
label:"上报人",
prop:'up_admin.name',
@ -398,7 +295,7 @@
label:"任务名称",
prop:'mission_name',
},{
label:"检查日期",
label:"发现时间",
prop:'date',
},{
label:"检查站点/地点",
@ -636,7 +533,7 @@
page_size:999,
unit_type:k.id,
year:this.year,
pid:0
pid:''
})
this.missionList = res1.data
@ -728,6 +625,7 @@
// this.$refs['addPatrol'].siteListArr=this.siteListArr
// this.$refs['addPatrol'].askList = this.askList
// this.$refs['addPatrol'].siteList = this.siteList
this.$refs['addPatrol'].mission_id = 0
this.$refs['addPatrol'].department_id = this.department_id
this.$refs['addPatrol'].login_id=this.login_id
this.$refs['addPatrol'].isShow=true

@ -80,7 +80,7 @@
<el-table-column align='center' fixed="right" label="操作" width="100" header-align="center">
<template slot-scope="scope">
<template v-if="path_type!=5">
<div v-if="!(scope.row.audit_status==3||scope.row.audit_status==5)">
<div v-if="!(scope.row.audit_status==3||scope.row.audit_status==5) && (scope.row.admin_id==stateObj.login_id || stateObj.is_chuzhang || stateObj.is_guiji)">
<Button style="margin-right:5px;margin-bottom:5px;" type="primary" size="small"
@click="editorUnit(scope.row.id,'editor')">编辑任务</Button>
</div>
@ -91,7 +91,7 @@
<!-- <div>
<Button v-if="scope.row.audit_admin_id==stateObj.login_id&&scope.row.audit_status==0" style="margin-right:5px;margin-bottom:5px;" type="primary" size="small" @click="checkUnits(scope.row.id,'check')"></Button>
</div> -->
<div v-if="scope.row.audit_status==3">
<div v-if="scope.row.audit_status==3 && (scope.row.admin_id==stateObj.login_id || stateObj.is_chuzhang || stateObj.is_guiji)">
<!-- v-if="scope.row.audit_status==3" -->
<Button style="margin-right:5px;margin-bottom:5px;" type="primary" size="small"
@click="editorUnit(scope.row.id,'editor')">编辑任务</Button>
@ -577,13 +577,18 @@
this.select.type = 4
this.type_name = '专项专题任务'
this.path_type = path[1]
this.table.unshift({
this.table.splice(1,0,{
label: "任务类别",
prop: 'mission_type',
width: 120,
align: 'left'
})
align: 'center'
})
// this.table.unshift({
// label: "",
// prop: 'mission_type',
// width: 120,
// align: 'left'
// })
}
if (path[1] == 1) {
this.showSelectMonth = false
@ -707,6 +712,7 @@
}
if(formtype){
this.$refs.addUnit.setType(4)
this.$refs.addUnit.setMainId(this.stateObj.department_id,this.stateObj.login_id)
}
this.$refs.addUnit.type = type
@ -775,8 +781,8 @@
}
}
})
let my_arr = [] //
let my_no_arr = [] //
let my_arr = [] //
let my_no_arr = [] //
if(this.path_type == 5){
const newArr = res.data.filter((_, index) => !spliceIndex.includes(index));
newArr.map(item=>{

@ -25,7 +25,7 @@ module.exports = {
* Detail: https://cli.vuejs.org/config/#publicpath
*/
publicPath: process.env.ENV === 'staging' ? '/admin_test' : '/admin',
outputDir: '/Users/mac/Documents/朗业/2024/h-河道处项目/a-安全生产/safety-manage-service/public/admin_test',
outputDir: '/Users/mac/Documents/朗业/2024/h-河道处项目/a-安全生产/safety-manage-service/public/admin',
assetsDir: 'static',
lintOnSave: process.env.NODE_ENV === 'development',
productionSourceMap: false,

Loading…
Cancel
Save