lion 2 years ago
parent 49be3d4b39
commit 4b5eda6876

@ -15,6 +15,8 @@
}, },
"dependencies": { "dependencies": {
"@riophae/vue-treeselect": "^0.4.0", "@riophae/vue-treeselect": "^0.4.0",
"@smallwei/avue": "^2.10.17",
"avue-plugin-map": "^1.0.1",
"axios": "^0.26.1", "axios": "^0.26.1",
"core-js": "3.6.5", "core-js": "3.6.5",
"element-ui": "2.13.2", "element-ui": "2.13.2",

@ -6,6 +6,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title> <title><%= webpackConfig.name %></title>
<script>
window._AMapSecurityConfig = {
securityJsCode: 'dbc95be996393c8c69e3958bb945ea08',
}
</script>
<script type="text/javascript" src='https://webapi.amap.com/maps?v=1.4.11&key=53919608dd142b8d4498b43bfdef0792&plugin=AMap.PlaceSearch'></script>
<script src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
</head> </head>
<body> <body>
<noscript> <noscript>

@ -40,6 +40,9 @@ import moment from "moment"
Vue.prototype.$moment = moment; Vue.prototype.$moment = moment;
Vue.prototype.base = base; Vue.prototype.base = base;
import Avue from '@smallwei/avue';
import '@smallwei/avue/lib/index.css';
Vue.use(Avue);
import LxHeader from "@/components/LxHeader/index" import LxHeader from "@/components/LxHeader/index"
Vue.component('lx-header',LxHeader) Vue.component('lx-header',LxHeader)
import XyTable from "@/components/XyTable" import XyTable from "@/components/XyTable"

@ -18,7 +18,9 @@
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>地址 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>地址
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-input v-model="form.address" placeholder="请输入地址" clearable style="width: 300px;"></el-input> <avue-input-map :params="mapparams" placeholder="请选择地图" v-model="mapform"></avue-input-map>
<!-- <el-input v-model="form.address" placeholder="请输入地址" clearable style="width: 300px;"></el-input> -->
</div> </div>
</div> </div>
</template> </template>
@ -28,7 +30,7 @@
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>经度 <span style="color: red;font-weight: 600;padding-right: 4px;"></span>经度
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-input v-model="form.lon" placeholder="请输入经度" clearable style="width: 300px;"></el-input> <el-input class='maps' v-model="form.lon" disabled placeholder="请输入经度" clearable style="width: 300px;"></el-input>
</div> </div>
</div> </div>
</template> </template>
@ -38,7 +40,7 @@
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>纬度 <span style="color: red;font-weight: 600;padding-right: 4px;"></span>纬度
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-input v-model="form.lat" placeholder="请输入地址" clearable style="width: 300px;"></el-input> <el-input v-model="form.lat" disabled placeholder="请输入地址" clearable style="width: 300px;"></el-input>
</div> </div>
</div> </div>
</template> </template>
@ -70,7 +72,10 @@
lat: '', lat: '',
lon: '' lon: ''
}, },
mapparams: {
zoom: 11,
},
mapform: [],
rules: { rules: {
name:[{ name:[{
required:true, required:true,
@ -95,6 +100,7 @@
lat: res?.lat, lat: res?.lat,
lon: res?.lon, lon: res?.lon,
} }
this.mapform = [res.lon, res.lat, res.address]
}, },
submit() { submit() {
if (this.type === 'add') { if (this.type === 'add') {
@ -133,8 +139,14 @@
} }
} else { } else {
this.id = '' this.id = ''
this.mapform=[]
this.$refs['dialog'].reset() this.$refs['dialog'].reset()
} }
},
mapform(newVal, oldVal) {
this.form.lon = newVal[0];
this.form.lat = newVal[1];
this.form.address = newVal[2];
} }
} }
@ -146,69 +158,9 @@
width: 160px; width: 160px;
} }
.img__delete { ::v-deep .el-textarea__inner{
transform: scale(0.8, 0.8); width:300px;
height: 40px!important;
position: absolute; line-height: 30px;
top: 4px; }
right: 4px;
}
::v-deep .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
::v-deep .avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
::v-deep .el-upload--picture-card {
font-size: 28px;
color: #8c939d;
width: 80px !important;
height: 80px !important;
line-height: 80px !important;
text-align: center;
}
::v-deep .avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 80px !important;
height: 80px !important;
line-height: 80px !important;
text-align: center;
}
::v-deep .avatar {
width: 80px !important;
display: block;
border-radius: 6px;
}
::v-deep .xy-table-item-label {
width: 160px !important;
}
::v-deep .el-date-editor .el-range-separator {
width: auto !important;
}
::v-deep .el-input-number .el-input__inner {
text-align: left !important;
}
.searchCompanys {
display: flex;
justify-content: space-between;
margin-bottom: 16px;
.el-input {
width: 80%
}
}
</style> </style>

@ -81,7 +81,7 @@
<template v-slot:tips> <template v-slot:tips>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改建议 <span style="color: red;font-weight: 600;padding-right: 4px;"></span>整改建议
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-input v-model="form.tips" :rows='5' type='textarea' placeholder="请输入整改建议" clearable <el-input v-model="form.tips" :rows='5' type='textarea' placeholder="请输入整改建议" clearable
@ -153,21 +153,25 @@
}, },
rules: { rules: {
name: [{ mission_id: [{
required: true, required: true,
message: '请输入任务名称' message: '请选择任务专题'
}], }],
start_date: [{ date: [{
required: true, required: true,
message: '请选择开始时间' message: '请选择上报日期'
}], }],
end_date: [{ site_id: [{
required: true, required: true,
message: '请选择结束时间' message: '请选择巡查地点'
}], }],
unit_type: [{ ask_id: [{
required: true, required: true,
message: '请选择任务类型' message: '请选择问题类型'
}],
ask_introduce: [{
required: true,
message: '请输入问题描述'
}] }]
} }
} }

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<xy-dialog ref="dialog" :is-show.sync="isShow" type="form" :title="type === 'add' ? '发起任务' : '查看任务'" :form="form" <xy-dialog ref="dialog" :is-show.sync="isShow" type="form" :title="type === 'add' ? '发起任务' : '编辑任务'" :form="form"
:rules="rules" @submit="submit"> :rules="rules" @submit="submit">
<template v-slot:name> <template v-slot:name>
<div class="xy-table-item"> <div class="xy-table-item">
@ -213,6 +213,7 @@
name:'提交文字与附件' name:'提交文字与附件'
}], }],
form: { form: {
type:'',
name: '', name: '',
unit_type: '', unit_type: '',
start_date: '', start_date: '',
@ -224,7 +225,7 @@
accept_admin_ids:[], accept_admin_ids:[],
end_type:'', end_type:'',
end_content:'', end_content:'',
type:1, type:'',
}, },
rules: { rules: {
@ -249,6 +250,10 @@
}, },
created() { created() {
this.uploadOther.token = getToken(); this.uploadOther.token = getToken();
if(this.$route.path){
let path = this.$route.path.split("_")
this.form.type = path[1]
}
this.loadDeptOptions() this.loadDeptOptions()
this.loadUser() this.loadUser()
}, },
@ -324,6 +329,7 @@
async getDetail() { async getDetail() {
const res = await get(this.id) const res = await get(this.id)
this.form = { this.form = {
type:res?.type,
name: res?.name, name: res?.name,
unit_type: res?.unit_type, unit_type: res?.unit_type,
start_date: res?.start_date, start_date: res?.start_date,
@ -335,7 +341,6 @@
accept_admin_ids:res?.accept_admin_ids, accept_admin_ids:res?.accept_admin_ids,
end_type:res?.end_type, end_type:res?.end_type,
end_content:res?.end_content, end_content:res?.end_content,
type:1,
} }
for(var f of res.files){ for(var f of res.files){
@ -415,6 +420,10 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .type{
display: none;
}
.xy-table-item-label { .xy-table-item-label {
width: 160px; width: 160px;
} }

@ -183,7 +183,7 @@
<!-- 提交整改 --> <!-- 提交整改 -->
<template v-slot:fix_status v-if="type=='reform'||type=='confirm'"> <template v-slot:fix_status v-if="type=='reform'||type=='confirm'||type=='leaderconfirm'">
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改完成情况 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改完成情况
@ -199,7 +199,7 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:fix_end_date v-if="type=='reform'||type=='confirm'"> <template v-slot:fix_end_date v-if="type=='reform'||type=='confirm'||type=='leaderconfirm'">
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改结束时间 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改结束时间
@ -214,7 +214,7 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:fix_introduce v-if="type=='reform'||type=='confirm'"> <template v-slot:fix_introduce v-if="type=='reform'||type=='confirm'||type=='leaderconfirm'">
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改说明 <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>整改说明
@ -228,7 +228,7 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:fix_file_ids v-if="type=='reform'||type=='confirm'"> <template v-slot:fix_file_ids v-if="type=='reform'||type=='confirm'||type=='leaderconfirm'">
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>整改附件 <span style="color: red;font-weight: 600;padding-right: 4px;"></span>整改附件

@ -1,7 +1,7 @@
<template> <template>
<div style="padding: 0 20px"> <div style="padding: 0 20px">
<div ref="lxHeader"> <div ref="lxHeader">
<lx-header icon="md-apps" text="巡查上报" style="margin-bottom: 10px; border: 0px; margin-top: 15px"> <lx-header icon="md-apps" :text="my_name" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<slot> <slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;"> <div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<Input v-model="select.keyword" clearable style="width: 200px;margin-right: 10px;" placeholder="关键字搜索" /> <Input v-model="select.keyword" clearable style="width: 200px;margin-right: 10px;" placeholder="关键字搜索" />
@ -69,11 +69,14 @@
}, },
data(){ data(){
return{ return{
my_name:'',
select:{ select:{
keyword:'', keyword:'',
page:1, page:1,
page_size:10, page_size:10,
status:'', status:'',
myself:0,
// myself_update:0
}, },
total:0, total:0,
statusList:[{ statusList:[{
@ -215,6 +218,11 @@
} }
}, },
created(){ created(){
if(this.$route.path){
let path = this.$route.path.split("_")
this.select.myself = path[1]
this.my_name = path[1]==1?'我的任务':'巡查上报'
}
this.getList() this.getList()
}, },
methods: { methods: {

@ -1,7 +1,7 @@
<template> <template>
<div style="padding: 0 20px"> <div style="padding: 0 20px">
<div ref="lxHeader"> <div ref="lxHeader">
<lx-header icon="md-apps" text="单位专项任务" style="margin-bottom: 10px; border: 0px; margin-top: 15px"> <lx-header icon="md-apps" :text="type_name" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<slot> <slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;"> <div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<Input v-model="select.keyword" style="width: 200px;margin-right: 10px;" placeholder="关键字搜索" /> <Input v-model="select.keyword" style="width: 200px;margin-right: 10px;" placeholder="关键字搜索" />
@ -50,13 +50,27 @@
}, },
data(){ data(){
return{ return{
typeName:[{
type:1,
name:'单位专项任务'
},{
type:2,
name:'文件学习培训'
},{
type:3,
name:'事件隐患任务'
},{
type:4,
name:'科室任务'
}],
type_name:'',
select:{ select:{
keyword:'', keyword:'',
page:1, page:1,
page_size:10, page_size:10,
myself:0, myself:0,
myself_department:0, myself_department:0,
type:1, type:'',
unit_type:'' unit_type:''
}, },
total:0, total:0,
@ -134,6 +148,15 @@
} }
}, },
created(){ created(){
if(this.$route.path){
let path = this.$route.path.split("_")
this.select.type = path[1]
this.typeName.map(item=>{
if(item.type==this.select.type){
this.type_name = item.name
}
})
}
this.getList() this.getList()
}, },
watch:{}, watch:{},

Loading…
Cancel
Save