This commit is contained in:
2309368887@qq.com 2022-07-15 14:27:38 +08:00
commit dc9b3aaa08
22 changed files with 1627 additions and 1310 deletions

View File

@ -16,30 +16,9 @@ export default {
return await http.post(this.url, data, config); return await http.post(this.url, data, config);
} }
}, },
exportFile: {
url: `${config.API_URL}/fileExport`,
name: "导出附件",
get: async function(data, config={}){
return await http.get(this.url, data, config);
}
},
importFile: {
url: `${config.API_URL}/fileImport`,
name: "导入附件",
post: async function(data, config={}){
return await http.post(this.url, data, config);
}
},
file: { file: {
menu: {
url: `${config.API_URL}/file/menu`,
name: "获取文件分类",
get: async function(){
return await http.get(this.url);
}
},
list: { list: {
url: `${config.API_URL}/file/list`, url: `${config.API_URL}/file`,
name: "获取文件列表", name: "获取文件列表",
get: async function(params){ get: async function(params){
return await http.get(this.url, params); return await http.get(this.url, params);

View File

@ -133,6 +133,14 @@ export default {
); );
} }
}, },
item: {
name: "获取",
req: async function (id) {
return await http.get(
`${config.API_URL}/rpm/rpj/${id}/`,
);
}
},
read:{ read:{
name: "详情", name: "详情",
req: async function (id) { req: async function (id) {

View File

@ -125,11 +125,6 @@
name: "employee", name: "employee",
components: {}, components: {},
props: { props: {
value: {
// v-model
type: [String],
default: "",
},
user: { user: {
// v-model // v-model
type: [String], type: [String],
@ -163,8 +158,13 @@
this.getUser(); this.getUser();
this.getDept(); this.getDept();
this.getPost(); this.getPost();
debugger;
if(this.user===""){
this.selection = [];
this.apiObj.map(item => {
this.$refs.table.toggleRowSelection(item, false)
})
}
}, },
watch: { watch: {
filterText(val) { filterText(val) {
@ -181,13 +181,25 @@
}, },
methods: { methods: {
showDialog() { showDialog() {
this.dialoguser = true; debugger;
this.$nextTick(function () { let that = this;
this.apiObj.map(item => { that.dialoguser = true;
if (item.id === this.user) { that.$nextTick(function () {
this.$refs.table.toggleRowSelection(item, true) debugger;
} if(that.user===""){
}) that.selection = [];
that.apiObj.map(item => {
that.$refs.table.toggleRowSelection(item, false)
})
}else{
that.apiObj.map(item => {
debugger;
if (item.id === that.user) {
that.$refs.table.toggleRowSelection(item, true)
}
})
}
}) })
}, },
@ -240,16 +252,19 @@
}, },
// //
selectionChange(selection) { selectionChange(selection) {
debugger;
if (selection.length > 1) { if (selection.length > 1) {
let del_row = selection.shift(); let del_row = selection.shift();
this.selection = selection[1]; this.selection = selection[1];
this.$refs.userTable.toggleRowSelection(del_row, false); // 使selected true this.$refs.userTable.toggleRowSelection(del_row, false); // 使selected true
}else{ }else{
debugger;
this.selection = selection; this.selection = selection;
} }
}, },
submitfrom() { submitfrom() {
debugger;
if(this.selection.length===1){ if(this.selection.length===1){
let obj={id:this.selection[0].id,name:this.selection[0].name}; let obj={id:this.selection[0].id,name:this.selection[0].name};
this.$emit("handlerSubmit", obj); this.$emit("handlerSubmit", obj);

View File

@ -2,7 +2,7 @@
<div class="branch-wrap"> <div class="branch-wrap">
<div class="branch-box-wrap"> <div class="branch-box-wrap">
<div class="branch-box"> <div class="branch-box">
<el-button class="add-branch" type="success" plain round @click="addTerm">添加条件</el-button> <!--<el-button class="add-branch" type="success" plain round @click="addTerm">添加条件</el-button>-->
<div class="col-box" v-for="(item,index) in nodeConfig.conditionNodes" :key="index"> <div class="col-box" v-for="(item,index) in nodeConfig.conditionNodes" :key="index">
<div class="condition-node"> <div class="condition-node">
<div class="condition-node-box"> <div class="condition-node-box">

View File

@ -690,6 +690,15 @@ const routes = [
"icon": "el-icon-fold", "icon": "el-icon-fold",
}, },
"component": "ops/thirdLogs" "component": "ops/thirdLogs"
},
{
"name": "files",
"path": "/ops/files",
"meta": {
"title": "文件日志",
"icon": "el-icon-fold",
},
"component": "ops/files"
}, },
] ]
}, },

View File

@ -67,18 +67,21 @@ router.beforeEach(async (to, from, next) => {
//加载动态/静态路由 //加载动态/静态路由
if(!isGetRouter){ if(!isGetRouter){
// let apiMenu = tool.data.get("MENU") || [] // let apiMenu = tool.data.get("MENU") || []
let userInfo = tool.data.get("USER_INFO") debugger;
let userInfo = tool.data.get("USER_INFO");
let permissions = tool.data.get("PERMISSIONS");
let userMenu = treeFilter(userRoutes, node => { let userMenu = treeFilter(userRoutes, node => {
return node.meta.perms ? node.meta.perms.filter(item=>userInfo.perms.indexOf(item)>-1).length > 0 : true return node.meta.perms ? node.meta.perms.filter(item=>userInfo.perms.indexOf(item)>-1).length > 0 : true
}) });
// let menu = [...userMenu, ...apiMenu] // let menu = [...userMenu, ...apiMenu]
var menuRouter = filterAsyncRouter(userMenu) var menuRouter = filterAsyncRouter(userMenu);
menuRouter = flatAsyncRoutes(menuRouter) menuRouter = flatAsyncRoutes(menuRouter);
menuRouter.forEach(item => { menuRouter.forEach(item => {
router.addRoute("layout", item) router.addRoute("layout", item)
}) });
routes_404_r = router.addRoute(routes_404) routes_404_r = router.addRoute(routes_404);
if (to.matched.length == 0) { debugger;
if (to.matched.length ==0||permissions[0]==='superuser') {
router.push(to.fullPath); router.push(to.fullPath);
} }
isGetRouter = true; isGetRouter = true;

View File

@ -147,7 +147,7 @@ tool.objCopy = function (obj) {
/* 日期格式化 */ /* 日期格式化 */
tool.dateFormat = function (date, fmt='yyyy-MM-dd hh:mm:ss') { tool.dateFormat = function (date, fmt='yyyy-MM-dd hh:mm:ss') {
date = new Date(date) date = new Date(date);
var o = { var o = {
"M+" : date.getMonth()+1, //月份 "M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日 "d+" : date.getDate(), //日
@ -155,14 +155,21 @@ tool.dateFormat = function (date, fmt='yyyy-MM-dd hh:mm:ss') {
"m+" : date.getMinutes(), //分 "m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒 "s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度 "q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒 "S" : date.getMilliseconds(), //毫秒
"W" : date.getDay(), //毫秒
}; };
if(/(y+)/.test(fmt)) { var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
} if(fmt==='week'){
for(var k in o) { fmt =weeks[o.w];
if(new RegExp("("+ k +")").test(fmt)){ }else{
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
} }
} }
return fmt; return fmt;

View File

@ -5,9 +5,9 @@
<div class="header-left-bg">曲阳金隅智慧安全</div> <div class="header-left-bg">曲阳金隅智慧安全</div>
<div class="header-right-action"> <div class="header-right-action">
<div class="right-action-clock"> <div class="right-action-clock">
<span class="action-time">2022-06-22</span> <span class="action-time">{{ currentDay }}</span>
<span class="action-time">周三下午 </span> <span class="action-time">周三下午 </span>
<span class="action-time">17:59:52</span> <span class="action-time">{{ currentTime }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -831,6 +831,8 @@
LBType: '1', LBType: '1',
userMarker: {}, userMarker: {},
todayDate:'', todayDate:'',
currentDay:'',
currentTime:'',
} }
}, },
created() { created() {
@ -841,7 +843,12 @@
}, },
mounted() { mounted() {
let date = new Date(); let date = new Date();
this.todayDate = this.warningData.params.start_create = this.cateAggForm.start_create =date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate(); this.timeNow = date.getDay();
this.todayDate = this.warningData.params.start_create = this.cateAggForm.start_create =this.$TOOL.dateFormat(new Date(), 'yyyy-MM-dd');
this.showTime();
setInterval(()=>{
this.showTime();
},1000);
window.map = new jsmap.JSMap({ window.map = new jsmap.JSMap({
mapType: jsmap.JSMapType.MAP_3D, mapType: jsmap.JSMapType.MAP_3D,
container: 'mapContainer', container: 'mapContainer',
@ -1016,6 +1023,10 @@
setInterval(function () {}, 3000) setInterval(function () {}, 3000)
}, },
methods: { methods: {
showTime(){
this.currentTime = this.$TOOL.dateFormat(new Date(), 'hh:mm:ss');
this.currentDay = this.$TOOL.dateFormat(new Date(), 'yyyy年MM月dd日')
},
getWarningTotal(){ getWarningTotal(){
let that = this; let that = this;
that.$API.ecm.event.cateAgg.req(that.cateAggForm).then(res=>{ that.$API.ecm.event.cateAgg.req(that.cateAggForm).then(res=>{

View File

@ -159,7 +159,7 @@ export default {
try { try {
var res1 = await this.$API.auth.info.get(); var res1 = await this.$API.auth.info.get();
this.$TOOL.data.set("USER_INFO", res1); this.$TOOL.data.set("USER_INFO", res1);
this.$TOOL.data.set("PERMISSIONS", res1.perms.keys()); this.$TOOL.data.set("PERMISSIONS", Object.keys(res1.perms));
this.$router.replace({ this.$router.replace({
path: "/", path: "/",
}); });

71
src/views/ops/files.vue Normal file
View File

@ -0,0 +1,71 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<div class="right-panel-search">
<el-input v-model="search.id" placeholder="logId" clearable></el-input>
<el-button type="primary" icon="el-icon-search" @click="getSearch"></el-button>
</div>
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick">
<el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="名称" prop="name" min-width="80"></el-table-column>
<el-table-column label="id" prop="id" min-width="200"></el-table-column>
<el-table-column label="路径" prop="path" min-width="150"></el-table-column>
<el-table-column label="类型" prop="type" min-width="80">
<template #default="scope">
<el-tag class="ml-2" type="success" v-if="scope.row.type===1">成功</el-tag>
<el-tag class="ml-2" type="warning" v-if="scope.row.type===2">报错</el-tag>
<el-tag class="ml-2" type="danger" v-if="scope.row.type===40">图片</el-tag>
</template>
</el-table-column>
<el-table-column label="操作时间" prop="requested_at" min-width="150"></el-table-column>
<el-table-column label="操作" align="center" width="100">
<el-button type="text" size="small">查看详情</el-button>
</el-table-column>
</scTable>
</el-main>
<el-drawer v-model="infoDrawer" title="日志详情" :size="'50%'" destroy-on-close>
<logInfo ref="logInfo"></logInfo>
</el-drawer>
</el-container>
</template>
<script>
import logInfo from './logInfo'
export default {
name: 'files',
components: {
logInfo
},
data() {
return {
apiObj: this.$API.common.file.list,
search:{
id:null,
},
logLists:[],
infoDrawer:false,
logDetailVisible:false,
}
},
mounted() {
},
methods: {
getSearch(){
this.$refs.table.reload(this.search);
},
rowClick(row){
this.infoDrawer = true;
this.$nextTick(() => {
this.$refs.logInfo.setData(row)
})
}
}
}
</script>
<style scoped>
.treeMain {height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;}
</style>

View File

@ -11,11 +11,12 @@
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick"> <scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick">
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="method" prop="method" min-width="80"></el-table-column> <el-table-column label="日志id" prop="id" min-width="200"></el-table-column>
<el-table-column label="id" prop="id" min-width="200"></el-table-column>
<el-table-column label="路径" prop="path" min-width="150"></el-table-column> <el-table-column label="路径" prop="path" min-width="150"></el-table-column>
<el-table-column label="view" prop="view" min-width="150"></el-table-column> <el-table-column label="method" prop="method" min-width="80">
</el-table-column>
<el-table-column label="view" prop="view" min-width="150"></el-table-column>
<el-table-column label="状态码" prop="status_code" min-width="80"> <el-table-column label="状态码" prop="status_code" min-width="80">
<template #default="scope"> <template #default="scope">
<el-tag class="ml-2" type="success" v-if="scope.row.status_code>=200&&scope.row.status_code<300">{{scope.row.status_code}}</el-tag> <el-tag class="ml-2" type="success" v-if="scope.row.status_code>=200&&scope.row.status_code<300">{{scope.row.status_code}}</el-tag>

View File

@ -1,228 +1,251 @@
<template> <template>
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button> <el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
<!-- <el-button type="danger" plain icon="el-icon-delete" :disabled="selection.length==0" @click="batch_del"></el-button> <!-- <el-button type="danger" plain icon="el-icon-delete" :disabled="selection.length==0" @click="batch_del"></el-button>
<el-button type="primary" plain :disabled="selection.length!=1" @click="permission">权限设置</el-button> --> <el-button type="primary" plain :disabled="selection.length!=1" @click="permission">权限设置</el-button> -->
</div> </div>
<div class="right-panel"> <div class="right-panel">
<div class="right-panel-search"> <div class="right-panel-search">
<el-input <el-input
v-model="search.keyword" v-model="search.keyword"
placeholder="名称" placeholder="名称"
clearable clearable
></el-input> ></el-input>
<el-button <el-button
type="primary" type="primary"
icon="el-icon-search" icon="el-icon-search"
></el-button> ></el-button>
</div> </div>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable
ref="table" ref="table"
:apiObj="apiObj" :apiObj="apiObj"
row-key="id" row-key="id"
stripe stripe
@resetQuery="resetQuery" @resetQuery="resetQuery"
> >
<el-table-column label="#" type="index" fixed="left" width="50"></el-table-column> <el-table-column label="#" type="index" fixed="left" width="50"></el-table-column>
<el-table-column label="名称" prop="name" fixed="left" width="180"></el-table-column> <el-table-column label="名称" prop="name" fixed="left" width="180"></el-table-column>
<el-table-column label="项目类型" prop="type" width="180" <el-table-column label="项目类型" prop="type" width="180"
><template #default="scope" >
>{{ type_[scope.row.type] }} <template #default="scope"
</template></el-table-column >{{ type_[scope.row.type] }}
> </template>
<el-table-column </el-table-column
label="合同编号" >
prop="contract_number" <el-table-column
width="180" label="合同编号"
></el-table-column> prop="contract_number"
<el-table-column width="180"
label="进场时间" ></el-table-column>
prop="come_time" <el-table-column
width="180" label="进场时间"
></el-table-column> prop="come_time"
<el-table-column width="180"
label="离场时间" ></el-table-column>
prop="leave_time" <el-table-column
width="180" label="离场时间"
></el-table-column> prop="leave_time"
<el-table-column label="状态" prop="state" width="180" width="180"
><template #default="scope" ></el-table-column>
>{{ state_[scope.row.state] }} <el-table-column label="状态" prop="state" width="180">
</template></el-table-column <template #default="scope">{{ state_[scope.row.state] }}</template>
> </el-table-column>
<el-table-column <el-table-column label="审批状态" width="180">
label="所属部门" <template #default="scope">
prop="belong_dept_name" <span v-if="scope.row.ticket_&&scope.row.ticket_.state_" style="margin-right: 5px;">{{scope.row.ticket_.state_.name }}</span>
width="180" <el-tag
></el-table-column> v-if="scope.row.ticket_&&scope.row.ticket_.act_state"
<el-table-column class="mx-1"
label="相关方" size="small"
prop="rparty_name" :type="scope.row.ticket_.act_state===0?'':scope.row.ticket_.act_state===1?'':scope.row.ticket_.act_state===2?'danger':scope.row.ticket_.act_state===3?'danger':scope.row.ticket_.act_state===5?'danger':scope.row.ticket_.act_state===4?'success':''"
width="180" >{{act_states[scope.row.ticket_.act_state]}}
></el-table-column> </el-tag>
<el-table-column </template>
label="创建人" </el-table-column>
prop="create_by" <el-table-column
width="180" label="所属部门"
></el-table-column> prop="belong_dept_name"
<el-table-column width="180"
label="创建时间" ></el-table-column>
prop="create_time" <el-table-column
width="180" label="相关方"
></el-table-column> prop="rparty_name"
<el-table-column label="操作" fixed="right" align="left" width="170"> width="180"
<template #default="scope"> ></el-table-column>
<el-button-group> <el-table-column
<el-button label="创建人"
text prop="create_by"
type="primary" width="180"
size="small" ></el-table-column>
@click="next_add(scope.row, scope.$index)" <el-table-column
>继续编辑</el-button> label="创建时间"
prop="create_time"
width="180"
></el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="170">
<template #default="scope">
<el-button-group>
<el-button
text
type="primary"
size="small"
@click="next_add(scope.row, scope.$index)"
>继续编辑
</el-button>
<el-button <el-button
text text
type="primary" type="primary"
size="small" size="small"
@click="table_show(scope.row, scope.$index)" @click="table_show(scope.row, scope.$index)"
>查看</el-button> >查看
<el-button </el-button>
text <el-button
type="warning" text
size="small" type="warning"
@click="table_edit(scope.row, scope.$index)" size="small"
>编辑</el-button> @click="table_edit(scope.row, scope.$index)"
<el-popconfirm >编辑
title="确定删除吗?" </el-button>
@confirm="table_del(scope.row, scope.$index)" <el-popconfirm
> title="确定删除吗?"
<template #reference> @confirm="table_del(scope.row, scope.$index)"
<el-button text type="danger" size="small">删除</el-button> >
</template> <template #reference>
</el-popconfirm> <el-button text type="danger" size="small">删除</el-button>
</el-button-group> </template>
</template> </el-popconfirm>
</el-table-column> </el-button-group>
</scTable> </template>
</el-main> </el-table-column>
</el-container> </scTable>
</el-main>
</el-container>
<save-dialog <save-dialog
v-if="dialog.save" v-if="dialog.save"
ref="saveDialog" ref="saveDialog"
@success="handleSaveSuccess" @success="handleSaveSuccess"
@closed="dialog.save = false" @closed="dialog.save = false"
></save-dialog> ></save-dialog>
<show-dialog
v-if="dialog.show"
ref="showDialog"
:rpjId="rpjId"
@closed="dialog.show = false"
></show-dialog>
</template> </template>
<script> <script>
import saveDialog from "./rpj_form.vue"; import saveDialog from "./rpj_form.vue";
export default { import showDialog from "./rpj_show.vue";
name: "remployee",
components: {
saveDialog,
},
data() {
return {
dialog: {
save: false,
permission: false,
},
adminform: {
username: "",
},
apiObj: this.$API.rpm.rpj.list,
query: {},
selection: [],
search: {
keyword: null,
},
type_: {
10: "建筑施工",
20: "设备设施检维修",
30: "保安保洁服务",
40: "其他",
},
state_: {
10: "创建中",
20: "审批中",
30: "待入厂",
40: "进行中",
40: "已完成",
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
},
// export default {
permission() { name: "remployee",
this.dialog.permission = true; components: {
this.$nextTick(() => { saveDialog,
this.$refs.permissionDialog.open(); showDialog,
}); },
}, data() {
// return {
async table_del(row) { dialog: {
this.$API.rpm.rpj.delete save: false,
.req(row.id) show: false,
.then((res) => { permission: false,
this.$message.success("删除成功"); },
adminform: {
username: "",
},
apiObj: this.$API.rpm.rpj.list,
query: {},
selection: [],
search: {
keyword: null,
},
type_: {
10: "建筑施工",
20: "设备设施检维修",
30: "保安保洁服务",
40: "其他",
},
state_: {
10: "创建中",
20: "审批中",
30: "待入厂",
40: "进行中",
50: "已完成",
},
rpjId:''
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_show(row) {
this.rpjId = row.id;
this.dialog.show = true;
},
return res; //
}) permission() {
.catch((err) => { this.dialog.permission = true;
return err; this.$nextTick(() => {
}); this.$refs.permissionDialog.open();
}, });
next_add(row) },
{ //
this.$router.push({ async table_del(row) {
name: "rpjadd", this.$API.rpm.rpj.delete
query: { .req(row.id)
rpjid: row.id, //id .then((res) => {
}, this.$message.success("删除成功");
});
},
// return res;
handleSaveSuccess(data, mode) { })
if (mode == "add") { .catch((err) => {
this.$refs.table.refresh(); return err;
} else if (mode == "edit") { });
this.$refs.table.refresh(); },
} next_add(row) {
}, this.$router.push({
resetQuery() { name: "rpjadd",
this.query = {}; query: {
}, rpjid: row.id, //id
}, },
}; });
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
resetQuery() {
this.query = {};
},
},
};
</script> </script>

View File

@ -1,215 +1,213 @@
<template> <template>
<el-drawer <el-drawer
:title="titleMap[mode]" :title="titleMap[mode]"
v-model="visible" v-model="visible"
:size="1000" :size="1000"
destroy-on-close destroy-on-close
@closed="$emit('closed')" @closed="$emit('closed')"
> >
<el-container v-loading="loading"> <el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px"> <el-main style="padding: 0 20px 20px 20px">
<el-form <el-form
ref="dialogForm" ref="dialogForm"
:model="form" :model="form"
:rules="rules" :rules="rules"
:disabled="mode == 'show'" :disabled="mode == 'show'"
label-width="80px" label-width="80px"
> >
<el-row> <el-row>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="名称"> <el-form-item label="名称">
<el-input <el-input
v-model="form.name" v-model="form.name"
type="text" type="text"
clearable clearable
:disabled="mode != 'add'" :disabled="mode != 'add'"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="项目类型"> <el-form-item label="项目类型">
<el-select v-model="form.type" style="width: 100%"> <el-select v-model="form.type" style="width: 100%">
<el-option <el-option
v-for="item in typeOptions" v-for="item in typeOptions"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="合同编号"> <el-form-item label="合同编号">
<el-input <el-input
v-model="form.contract_number" v-model="form.contract_number"
type="text" type="text"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="进场时间"> <el-form-item label="进场时间">
<el-date-picker
v-model="form.come_time"
type="datetime"
placeholder="选择进场时间"
/>
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="离场时间">
<el-date-picker
v-model="form.leave_time"
type="datetime"
placeholder="选择离场时间"
/>
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="所属部门">
<el-date-picker <el-cascader
v-model="form.come_time"
type="datetime"
placeholder="选择结束时间"
/>
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="离场时间">
<el-date-picker
v-model="form.leave_time"
type="datetime"
placeholder="选择结束时间"
/>
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="所属部门">
<el-cascader
v-model="form.belong_dept" v-model="form.belong_dept"
:options="deptoptions" :options="deptoptions"
:props="{ :props="{
expandTrigger: 'hover', // expandTrigger: 'hover', //
label: 'label', // label: 'label', //
value: 'value', // value: 'value', //
emitPath: false, // false emitPath: false, // false
}" }"
clearable clearable
style="width: 100%;"> style="width: 100%;">
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="相关方"> <el-form-item label="相关方">
<el-select v-model="form.rparty" style="width: 100%"> <el-select v-model="form.rparty" style="width: 100%">
<el-option <el-option
v-for="item in rpartyOptions" v-for="item in rpartyOptions"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
</el-form>
</el-row> </el-main>
</el-form> <el-footer>
</el-main> <el-button type="primary" :loading="isSaveing" @click="submit"
<el-footer> >保存
<el-button type="primary" :loading="isSaveing" @click="submit" </el-button
>保存</el-button >
> <el-button @click="visible = false">取消</el-button>
<el-button @click="visible = false">取消</el-button> </el-footer>
</el-footer> </el-container>
</el-container> </el-drawer>
</el-drawer>
</template> </template>
<script> <script>
import { genTree } from "@/utils/verificate"; import {genTree} from "@/utils/verificate";
export default {
emits: ["success", "closed"],
data() {
return {
loading: false,
mode: "add",
titleMap: {
add: "新增",
edit: "编辑",
show: "查看",
},
form: {},
rules: {},
visible: false,
isSaveing: false,
selectionFilters: [],
setFiltersVisible: false,
rpartyOptions: [],
deptoptions:[],
typeOptions: [
{ id: 10, name: "建筑施工" },
{ id: 20, name: "设备设施检维修" },
{ id: 30, name: "保安保洁服务" },
{ id: 40, name: "其他" },
],
};
},
mounted() {
this.getRpartyOptions();
this.getDept();
},
methods: {
//
open(mode = "add") {
this.mode = mode;
this.visible = true;
return this;
},
//
getDept() {
this.$API.system.dept.list.req({ page: 0 }).then((res) => {
this.deptoptions = genTree(res);
});
},
// export default {
getRpartyOptions() { emits: ["success", "closed"],
this.$API.rpm.rparty.list.req({ page: 0 }).then((res) => { data() {
this.rpartyOptions = res; return {
}); loading: false,
}, mode: "add",
// titleMap: {
submit() { add: "新增",
this.$refs.dialogForm.validate(async (valid) => { edit: "编辑",
if (valid) { show: "查看",
this.isSaveing = true; },
try { form: {},
var res; rules: {},
if (this.mode == "add") { visible: false,
res = await this.$API.rpm.rpj.create.req(this.form); isSaveing: false,
} else if (this.mode == "edit") { selectionFilters: [],
res = await this.$API.rpm.rpj.update.req(this.form.id, this.form); setFiltersVisible: false,
} rpartyOptions: [],
this.isSaveing = false; deptoptions: [],
this.$emit("success", this.form, this.mode); typeOptions: [
this.visible = false; {id: 10, name: "建筑施工"},
this.$message.success("操作成功"); {id: 20, name: "设备设施检维修"},
return res; {id: 30, name: "保安保洁服务"},
} catch (err) { {id: 40, name: "其他"},
// ],
this.isSaveing = false; };
return err; },
} mounted() {
} this.getRpartyOptions();
}); this.getDept();
}, },
// methods: {
setData(data) { //
// this.loading = true open(mode = "add") {
// const params = { this.mode = mode;
// id: data.id this.visible = true;
// } return this;
// setTimeout(async ()=>{ },
// var res = await this.$API.system.table.info.get(params) //
// this.loading = false getDept() {
// this.form = res.data this.$API.system.dept.list.req({page: 0}).then((res) => {
// },400) this.deptoptions = genTree(res);
Object.assign(this.form, data); });
}, },
//
setFilters(filters) { //
this.selectionFilters = filters; getRpartyOptions() {
this.setFiltersVisible = true; this.$API.rpm.rparty.list.req({page: 0}).then((res) => {
}, this.rpartyOptions = res;
}, });
}; },
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
try {
var res;
if (this.mode == "add") {
res = await this.$API.rpm.rpj.create.req(this.form);
} else if (this.mode == "edit") {
res = await this.$API.rpm.rpj.update.req(this.form.id, this.form);
}
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
return res;
} catch (err) {
//
this.isSaveing = false;
return err;
}
}
});
},
//
setData(data) {
// this.loading = true
// const params = {
// id: data.id
// }
// setTimeout(async ()=>{
// var res = await this.$API.system.table.info.get(params)
// this.loading = false
// this.form = res.data
// },400)
Object.assign(this.form, data);
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
};
</script> </script>
<style> <style>

114
src/views/rpm/rpj_show.vue Normal file
View File

@ -0,0 +1,114 @@
<template>
<el-drawer
:title="form.name"
v-model="visible"
:size="1000"
destroy-on-close
>
<el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px">
<el-descriptions direction="vertical" :column="3" border>
<!--<el-descriptions-item label="入厂项目:">{{form.name }}</el-descriptions-item>-->
<el-descriptions-item label="项目类型:">{{types_[form.type]}}</el-descriptions-item>
<el-descriptions-item label="合同编号:">{{form.contract_number}}</el-descriptions-item>
<el-descriptions-item label="状态:">{{state_[form.state]}}</el-descriptions-item>
<el-descriptions-item label="进厂时间:">{{form.come_time}}</el-descriptions-item>
<el-descriptions-item label="离厂时间:">{{form.leave_time}}</el-descriptions-item>
<el-descriptions-item label="所属部门:">{{form.belong_dept_name}}</el-descriptions-item>
<!--<el-descriptions-item label="相关方:">{{form.rparty_name}}</el-descriptions-item>-->
</el-descriptions>
<!--<el-card style="margin-top:20px">
<scTable
ref="table"
:data="peoplelist"
row-key="id"
height='auto'
stripe
hideDo
hidePagination
>
<el-table-column
label="#"
fixed="left"
type="index"
width="50"
></el-table-column>
<el-table-column
label="访客姓名"
prop="visitor_.name"
></el-table-column>
<el-table-column
label="访客手机号"
prop="visitor_.phone"
></el-table-column>
<el-table-column
label="访客身份证号"
prop="visitor_.id_number"
></el-table-column>
<el-table-column label="是否重要访客" prop="is_main">
<template #default="scope"
>
<el-space v-if="scope.row.is_main == true"></el-space>
<el-space v-else></el-space>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="create_time"></el-table-column>
</scTable>
</el-card>-->
</el-main>
</el-container>
</el-drawer>
</template>
<script>
import {genTree} from "@/utils/verificate";
import selectUser from "@/layout/components/userselect";
export default {
emits: ["success", "closed"],
components: {
selectUser,
},
props:{rpjId: { type: String, default: "" }},
data() {
return {
loading: false,
visible: false,
isSaveing: false,
state_: {
10: "创建中",
20: "审批中",
30: "待入厂",
40: "进行中",
50: "已完成",
},
types_: {
10: "建筑施工",
20: "设备设施检维修",
30: "保安保洁服务",
40: "其他",
},
receptionistoptions: [],
peoplelist: [],
};
},
mounted() {
this.getFormData();
},
methods: {
getFormData(){
this.$API.rpm.rpj.item.req(this.rpjId).then((res) => {
this.form = res;
this.visible = true;
});
},
},
};
</script>
<style scoped>
.el-transfer {
--el-transfer-panel-width: 345px !important;
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,260 +1,280 @@
<template> <template>
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button> <el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
<!-- <el-button type="danger" plain icon="el-icon-delete" :disabled="selection.length==0" @click="batch_del"></el-button> </div>
<el-button type="primary" plain :disabled="selection.length!=1" @click="permission">权限设置</el-button> --> <div class="right-panel">
</div> <div class="right-panel-search">
<div class="right-panel"> <el-input
<div class="right-panel-search"> v-model="search.keyword"
<el-input placeholder="名称"
v-model="search.keyword" clearable
placeholder="名称" ></el-input>
clearable <el-button
type="primary"
icon="el-icon-search"
></el-button>
</div>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
@selection-change="selectionChange"
stripe
@resetQuery="resetQuery"
>
<el-table-column
label="#"
fixed="left"
type="index"
width="50"
></el-table-column>
></el-input> <el-table-column label="来访事由" prop="state" width="180" fixed="left">
<el-button <template #default="scope">{{purpose_[scope.row.purpose] }}</template>
type="primary" </el-table-column>
icon="el-icon-search" <el-table-column
label="访问级别"
></el-button> prop="level"
</div> width="200"
</div> fixed="left"
</el-header> >
<el-main class="nopadding"> <template #default="scope">
<scTable <el-space v-if="scope.row.level==10">一般</el-space>
ref="table" <el-space v-else>重要</el-space>
:apiObj="apiObj" </template>
row-key="id" </el-table-column>
@selection-change="selectionChange" <el-table-column
stripe label="来访单位"
@resetQuery="resetQuery" prop="company"
> width="180"
<el-table-column fixed="left"
label="#" ></el-table-column>
fixed="left" <el-table-column
type="index" label="项目状态"
width="50" prop="state"
></el-table-column> width="180"
>
<el-table-column label="来访事由" prop="state" width="180" fixed="left"> <template #default="scope">{{state_[scope.row.state] }}</template>
<template #default="scope">{{ </el-table-column>
purpose_[scope.row.purpose] <el-table-column
}}</template></el-table-column> label="审批状态"
<el-table-column prop="state"
label="访问级别" width="180"
prop="level" >
width="200" <template #default="scope">
fixed="left" <span v-if="scope.row.ticket_&&scope.row.ticket_.state_" style="margin-right: 5px;">{{scope.row.ticket_.state_.name }}</span>
> <el-tag
<template #default="scope"><el-space v-if="scope.row.level==10">一般</el-space> v-if="scope.row.ticket_&&scope.row.ticket_.act_state"
<el-space v-else>重要</el-space> class="mx-1"
</template> size="small"
</el-table-column> :type="scope.row.ticket_.act_state===0?'':scope.row.ticket_.act_state===1?'':scope.row.ticket_.act_state===2?'danger':scope.row.ticket_.act_state===3?'danger':scope.row.ticket_.act_state===5?'danger':scope.row.ticket_.act_state===4?'success':''"
<el-table-column >{{act_states[scope.row.ticket_.act_state]}}</el-tag>
label="来访单位" </template>
prop="company" </el-table-column>
width="180" <el-table-column
fixed="left" label="来访概述"
></el-table-column> prop="name"
<el-table-column width="180"
label="状态" ></el-table-column>
prop="state" <el-table-column
width="180" label="来访详述"
> <template #default="scope">{{ prop="description"
state_[scope.row.state] width="180"
}}</template> ></el-table-column>
</el-table-column> <el-table-column
<el-table-column label="来访时间"
label="来访概述" prop="visit_time"
prop="name" width="180"
width="180" ></el-table-column>
></el-table-column> <el-table-column
<el-table-column label="离开时间"
label="来访详述" prop="leave_time"
prop="description" width="180"
width="180" ></el-table-column>
></el-table-column> <el-table-column
<el-table-column label="来访人数"
label="来访时间" prop="count_people"
prop="visit_time" width="180"
width="180" ></el-table-column>
></el-table-column> <el-table-column
<el-table-column label="属地部门"
label="离开时间" prop="belong_dept"
prop="leave_time" width="180"
width="180" ></el-table-column>
></el-table-column> <el-table-column
<el-table-column label="接待人"
label="来访人数" prop="receptionist_name"
prop="count_people" width="180"
width="180" >
></el-table-column> <template #default="scope">
<el-table-column <span v-if="scope.row.receptionist_">{{scope.row.receptionist_.name}}</span>
label="属地部门" </template>
prop="belong_dept" </el-table-column>
width="180" <el-table-column
></el-table-column> label="创建时间"
<el-table-column prop="create_time"
label="接待人" width="180"
prop="receptionist_name" ></el-table-column>
width="180" <el-table-column label="操作" fixed="right" align="left" width="170">
></el-table-column> <template #default="scope">
<el-button-group>
<el-button
<el-table-column text
label="创建时间" v-if="scope.row.state==10"
prop="create_time" type="primary"
width="180" size="small"
></el-table-column> @click="addpepple(scope.row, scope.$index)"
<el-table-column label="操作" fixed="right" align="left" width="170"> >继续编辑
<template #default="scope"> </el-button>
<el-button-group> <el-button
text
type="primary"
<el-button size="small"
text @click="table_show(scope.row, scope.$index)"
v-if="scope.row.state==10" >查看
type="primary" </el-button>
size="small" <el-button
@click="addpepple(scope.row, scope.$index)" text
>继续编辑</el-button> type="primary"
<el-button size="small"
text @click="table_del(scope.row)"
type="primary" >删除
size="small" </el-button>
@click="table_show(scope.row, scope.$index)" </el-button-group>
>查看</el-button> </template>
</el-table-column>
<el-button </scTable>
text </el-main>
type="primary" <save-dialog
size="small" v-if="dialog.save"
@click="table_del(scope.row)" ref="saveDialog"
>删除</el-button> @success="handleSaveSuccess"
</el-button-group> @closed="dialog.save = false"
</template> ></save-dialog>
</el-table-column> <detial-dialog
</scTable> v-if="dialog.save"
ref="detialDialog"
</el-main> ></detial-dialog>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<detial-dialog
v-if="dialog.save"
ref="detialDialog"
></detial-dialog>
</el-container>
</template> </template>
<script> <script>
import saveDialog from "./visit_form.vue"; import saveDialog from "./visit_form.vue";
import detialDialog from "./visit_detial.vue"; import detialDialog from "./visit_detial.vue";
export default {
name: "visit",
components: {
saveDialog,
detialDialog
},
data() {
return {
dialog: {
save: false,
permission: false,
},
apiObj: this.$API.vm.visit.list,
query: {},
selection: [],
search: {
keyword: null,
},
purpose_: { export default {
10: "参观", name: "visit",
20: "拜访", components: {
30: "面试", saveDialog,
40: "开会" detialDialog
}, },
state_: { data() {
10: "创建中", return {
20: "审批中", dialog: {
30: "待入厂", save: false,
40: "进行中", permission: false,
50: "已完成", },
}, apiObj: this.$API.vm.visit.list,
query: {},
selection: [],
search: {
keyword: null,
},
}; purpose_: {
}, 10: "参观",
methods: { 20: "拜访",
// 30: "面试",
add() { 40: "开会"
this.dialog.save = true; },
this.$nextTick(() => { state_: {
this.$refs.saveDialog.open("add"); 10: "创建中",
}); 20: "审批中",
}, 30: "待入厂",
addpepple(row){ 40: "进行中",
this.$router.push({ 50: "已完成",
name: "vistoradd", },
query: { act_states: {
visitid: row.id, //访id 0: "草稿中",//p
}, 1: "进行中",//p
});
}, 2: "被退回",//d
3: "被撤回",//d
4: "已完成",//s
5: "已关闭",//d
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
addpepple(row) {
this.$router.push({
name: "vistoradd",
query: {
visitid: row.id, //访id
},
});
},
// //
table_show(row) { table_show(row) {
this.dialog.save = true; this.dialog.save = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.detialDialog.open("show").setData(row); this.$refs.detialDialog.open("show").setData(row);
}); });
}, },
// //
permission() { permission() {
this.dialog.permission = true; this.dialog.permission = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.permissionDialog.open(); this.$refs.permissionDialog.open();
}); });
}, },
// //
table_del(row) { table_del(row) {
this.$API.vm.visit.delete this.$API.vm.visit.delete
.req(row.id) .req(row.id)
.then((res) => { .then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
return res; return res;
}) })
.catch((err) => { .catch((err) => {
return err; return err;
}); });
}, },
// //
selectionChange(selection) { selectionChange(selection) {
this.selection = selection; this.selection = selection;
}, },
// //
handleSaveSuccess(data, mode) { handleSaveSuccess(data, mode) {
if (mode == "add") { if (mode == "add") {
this.$refs.table.refresh(); this.$refs.table.refresh();
} else if (mode == "edit") { } else if (mode == "edit") {
this.$refs.table.refresh(); this.$refs.table.refresh();
} }
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};
}, },
}, },
}; };
</script> </script>

View File

@ -6,7 +6,7 @@
fit fit
stripe stripe
style="width: 100%;" style="width: 100%;"
height="500" height="400"
highlight-current-row highlight-current-row
> >
<el-table-column label="工单标题" min-width="100"> <el-table-column label="工单标题" min-width="100">

View File

@ -136,6 +136,15 @@
}, },
}); });
break; break;
case 'rparty':
this.$router.push({
name: "visitdetail",
query: {
id: row.id,
visitID:row.ticket_data.visit
},
});
break;
} }
}, },
handleLogs(row) { handleLogs(row) {

View File

@ -33,7 +33,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="create_time"></el-table-column> <el-table-column label="创建时间" prop="create_time"></el-table-column>
<el-table-column label="操作" fixed="right" align="right" width="120"> <el-table-column label="操作" fixed="right" align="center" width="160">
<template #default="scope"> <template #default="scope">
<el-button type="text" size="small" @click="handleShow(scope.row)">查看详情</el-button> <el-button type="text" size="small" @click="handleShow(scope.row)">查看详情</el-button>
<!--创建人在初始状态--> <!--创建人在初始状态-->

View File

@ -180,6 +180,13 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item
label="参与者"
prop="participant"
v-if="addForm.participant_type == 6"
>
<el-input v-model="addForm.participant" placeholder="方法名" />
</el-form-item>
<el-form-item <el-form-item
label="分配方式" label="分配方式"
prop="participant" prop="participant"
@ -229,7 +236,7 @@
placeholder="请选择岗位" placeholder="请选择岗位"
> >
<el-option <el-option
v-for="item in roles" v-for="item in posts"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
@ -241,7 +248,7 @@
label="过滤策略" label="过滤策略"
prop="participant" prop="participant"
v-if=" v-if="
addForm.participant_type == 4 || addForm.participant_type == 0 addForm.participant_type == 4 || addForm.participant_type == 0|| addForm.participant_type == 10
" "
> >
<el-select <el-select
@ -370,6 +377,7 @@ export default {
participant: "", participant: "",
participants: [], participants: [],
roles: [], roles: [],
posts: [],
staffs: [], staffs: [],
stateChange: [], stateChange: [],
fieldList: [], fieldList: [],
@ -382,7 +390,7 @@ export default {
participant_cc: [], participant_cc: [],
enable_retreat: false, enable_retreat: false,
participant_type: 0, participant_type: 0,
filter_policy: 0, filter_policy: '0',
distribute_type: 2, // distribute_type: 2, //
state_fields: {}, // state_fields: {}, //
}, },
@ -499,6 +507,7 @@ export default {
this.getList(); this.getList();
this.getUsers(); this.getUsers();
this.getRole(); this.getRole();
this.getPost();
this.getField(); this.getField();
}, },
methods: { methods: {
@ -519,6 +528,11 @@ export default {
async getRole() { async getRole() {
let roles = await this.$API.system.role.list.req({ page: 0 }); let roles = await this.$API.system.role.list.req({ page: 0 });
this.roles = roles; this.roles = roles;
},
//
async getPost() {
let posts = await this.$API.system.post.list.req({ page: 0 });
this.posts = posts;
}, },
// //
async getField() { async getField() {

View File

@ -59,7 +59,7 @@
<el-button v-if="ticketDetail.state_&&ticketDetail.state_.enable_deliver" type="primary" plain @click="deliverNode">转交</el-button> <el-button v-if="ticketDetail.state_&&ticketDetail.state_.enable_deliver" type="primary" plain @click="deliverNode">转交</el-button>
</div> </div>
<div> <div>
<el-button v-for="item in operationBtn" :key="item.id" class="filter-item" type="primary" @click="operationSubmit(item.id)">{{item.name}}</el-button> <el-button v-for="item in operationBtn" :key="item.id" class="filter-item" :type="item.attribute_type===2?'danger':'primary'" @click="operationSubmit(item.id)">{{item.name}}</el-button>
</div> </div>
</div> </div>
</el-card> </el-card>
@ -72,7 +72,7 @@
<el-form ref="Form" :model="addForm" label-width="100px" label-position="right"> <el-form ref="Form" :model="addForm" label-width="100px" label-position="right">
<el-form-item label="处理人"> <el-form-item label="处理人">
<el-input style="width: 50%;" v-model="userName" disabled placeholder="选择处理人"></el-input> <el-input style="width: 50%;" v-model="userName" disabled placeholder="选择处理人"></el-input>
<scUserSelect :closable="true" :multiple="false" @addNodeHandlerSubmit="addNodeHandlerSubmit"></scUserSelect> <scUserSelect v-model="addForm.toadd_user" :closable="true" :multiple="false" @handlerSubmit="addNodeHandlerSubmit"></scUserSelect>
</el-form-item> </el-form-item>
<el-form-item label="加签原因"> <el-form-item label="加签原因">
<el-input type="textarea" :rows="3" v-model="addForm.suggestion" placeholder="加签原因"/> <el-input type="textarea" :rows="3" v-model="addForm.suggestion" placeholder="加签原因"/>
@ -205,7 +205,7 @@
} }
if(res.err_msg){}else{ if(res.err_msg){}else{
this.limitedAdd = false; this.limitedAdd = false;
this.$router.push("/dutywork"); this.$router.push("dutywork");
} }
}, },
@ -223,7 +223,7 @@
this.$API.wf.ticket.ticketDeliver.req(this.ticketId,this.deliverForm).then(res=>{ this.$API.wf.ticket.ticketDeliver.req(this.ticketId,this.deliverForm).then(res=>{
if(res.err_msg){}else{ if(res.err_msg){}else{
this.limitedDeliver = false; this.limitedDeliver = false;
this.$router.push("/dutywork"); this.$router.push("dutywork");
} }
}) })
}, },
@ -234,7 +234,7 @@
params.suggestion = this.form.suggestion; params.suggestion = this.form.suggestion;
this.$API.wf.ticket.ticketHandle.req(this.ticketId,params).then(res=>{ this.$API.wf.ticket.ticketHandle.req(this.ticketId,params).then(res=>{
if(res.err_msg){}else{ if(res.err_msg){}else{
this.$router.push("/dutywork"); this.$router.push("dutywork");
} }
}) })
}, },

View File

@ -17,6 +17,7 @@
<scTable ref="table" :apiObj="apiObj" row-key="id"> <scTable ref="table" :apiObj="apiObj" row-key="id">
<el-table-column label="ID" prop="id" min-width="120"></el-table-column> <el-table-column label="ID" prop="id" min-width="120"></el-table-column>
<el-table-column label="工作流名称" prop="name" min-width="250"></el-table-column> <el-table-column label="工作流名称" prop="name" min-width="250"></el-table-column>
<el-table-column label="标识" prop="key" min-width="250"></el-table-column>
<el-table-column label="工单查看权限校验" prop="view_permission_check" min-width="150"> <el-table-column label="工单查看权限校验" prop="view_permission_check" min-width="150">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.view_permission_check"></span> <span v-if="scope.row.view_permission_check"></span>
@ -46,8 +47,8 @@
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="addForm.name" clearable></el-input> <el-input v-model="addForm.name" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="标识" prop="code"> <el-form-item label="标识" prop="key">
<el-input v-model="addForm.code" clearable></el-input> <el-input v-model="addForm.key" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="流水前缀"> <el-form-item label="流水前缀">
<el-input v-model="addForm.sn_prefix" clearable></el-input> <el-input v-model="addForm.sn_prefix" clearable></el-input>
@ -141,32 +142,34 @@
this.type = 'add'; this.type = 'add';
this.limitedVisible = true; this.limitedVisible = true;
}, },
submitHandle() { submitHandle() {
let that = this; let that = this;
debugger;
console.log(that.addForm.view_permission_check);
this.$refs.addForm.validate((valid) => { this.$refs.addForm.validate((valid) => {
if (valid) { if (valid) {
that.isSaveing = true; that.isSaveing = true;
let res = null; that.submit();
if (that.type === 'add') {
debugger;
res = that.$API.wf.workflow.create.req(that.addForm);
} else {
res = that.$API.wf.workflow.update.req(that.editId, that.addForm);
}
if(res.err_msg){
this.$message.error(res.err_msg)
}else{
that.isSaveing = false;
that.limitedVisible = false;
that.$refs.table.refresh();
}
} }
}) })
}, },
async submit(){
let that = this;
let res = null;
try{
if (that.type === 'add') {
res = await that.$API.wf.workflow.create.req(that.addForm)
} else {
res = await that.$API.wf.workflow.update.req(that.editId, that.addForm);
}
that.isSaveing = false;
that.limitedVisible = false;
that.$refs.table.refresh();
}catch (e) {
that.isSaveing = false;
}
},
// //
workflowEdit(row) { workflowEdit(row) {
this.type = 'edit'; this.type = 'edit';