This commit is contained in:
shijing 2022-07-07 16:14:43 +08:00
commit 459636e5b0
14 changed files with 1158 additions and 511 deletions

View File

@ -168,7 +168,7 @@ const routes = [
"name": "configuration", "name": "configuration",
"path": "/wf/configuration", "path": "/wf/configuration",
"meta": { "meta": {
"title": "工", "title": "工作流配置",
"icon": "el-icon-menu", "icon": "el-icon-menu",
"hidden": true "hidden": true
}, },
@ -471,6 +471,7 @@ const routes = [
"type": "menu" "type": "menu"
}, },
"children": [ "children": [
{ {
"name": "employee", "name": "employee",
"path": "/hrm/employee", "path": "/hrm/employee",

View File

@ -0,0 +1,358 @@
<template>
<div style="display:flex;row nowrap">
<!-- <el-tag
v-for="user in userData"
:key="user.id"
>
{{ user.name }}
</el-tag>-->
<el-button
v-if="selectable"
type="primary"
circle
size="mini"
icon="el-icon-plus"
@click="showDialog()"
/>
</div>
<el-dialog
title="选择人员"
width="90%"
v-model="dialoguser"
:before-close="handleClose"
:append-to-body="true"
:close-on-click-modal="false"
>
<el-card>
<el-row>
<el-col :md="8" :sm="24">
<el-main class="nopadding">
<el-tabs type="border-card" stretch="true">
<el-tab-pane label="按部门分类">
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
</el-input>
<el-tree
class="filter-tree"
style="padding-top: 15px"
:data="deptdata"
default-expand-all
:filter-node-method="filterNode"
ref="tree"
@node-click="handleNodeClick"
>
</el-tree>
</el-tab-pane>
<el-tab-pane label="按岗位分类">
<el-input
placeholder="输入关键字进行过滤"
v-model="filterTexts"
>
</el-input>
<el-tree
class="filter-tree"
style="padding-top: 15px"
:data="postdata"
default-expand-all
:filter-node-method="filterNodes"
ref="tree"
@node-click="handleNodeClicks"
>
</el-tree>
</el-tab-pane>
</el-tabs>
</el-main>
</el-col>
<el-col :md="16" :sm="24">
<el-header style="border-bottom: none">
<div class="left-panel">
<el-input
v-model="search.keyword"
placeholder="姓名"
clearable
@click="upsearch"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="upsearch"
></el-button>
</div>
<div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="addUser"
>添加选择</el-button
>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:data="apiObj"
row-key="id"
@selection-change="selectionChange"
stripe
:hidePagination="true"
hideDo
@resetQuery="resetQuery"
>
<el-table-column type="selection" width="50"></el-table-column>
<el-table-column
label="#"
type="index"
width="50"
></el-table-column>
<el-table-column label="姓名" prop="name"></el-table-column>
<el-table-column label="手机号" prop="phone"></el-table-column>
<el-table-column label="部门" prop="belong_dept">
<template #default="scope">
<span v-if="scope.row.belong_dept_">{{
scope.row.belong_dept_.name
}}</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
></el-table-column>
<!--
<el-table-column
label="操作"
fixed="right"
align="left"
width="100"
>
<template #default="scope">
<el-button-group>
<el-button
type="primary"
icon="el-icon-plus"
@click="handleForm('add', scope.row)"
></el-button>
</el-button-group>
</template>
</el-table-column>-->
</scTable>
</el-main>
<div style="padding-top: 15px">
<el-input
style="width: 80%"
v-model="username"
placeholder="选择人员的姓名"
clearable
></el-input>
<el-button @click="visible = false" style="float: right"
> </el-button
>
<el-button
v-if="mode != 'show'"
style="float: right"
type="primary"
:loading="isSaveing"
@click="submitfrom()"
> </el-button
>
</div>
</el-col>
</el-row>
</el-card>
</el-dialog>
</template>
<script>
import { genTree } from "@/utils/verificate";
export default {
name: "employee",
components: {},
props: {
value: {
// v-model
type: [String],
default: "",
},
user: {
// v-model
type: [String],
default: "",
},
closable: {
//
type: Boolean,
default: () => {
return true;
},
},
selectable: {
//
type: Boolean,
default: () => {
return true;
},
},
multiple: {
// ,
type: Boolean,
default: true,
},
},
data() {
return {
apiObj: [],
query: {},
selection: [],
search: {
keyword: null,
},
filterText: "",
filterTexts: "",
deptdata: [],
postdata: [],
username: [],
userData: [],
dialoguser: false,
dataValue: this.value,
};
},
mounted() {
this.getUser();
this.getDept();
this.getPost();
},
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
filterTexts(val) {
this.$refs.tree.filter(val);
},
dataValue(val) {
this.$emit("input", val);
console.log(val)
},
userData(val) {
if (val) {
this.change();
}
},
},
methods: {
showDialog() {
this.dialoguser = true;
this.$nextTick(function () {
this.apiObj.map(item => {
if (item.id === this.user) {
this.$refs.table.toggleRowSelection(item, true)
}
})
})
},
//
getUser() {
this.$API.system.user.list.req({ page: 0 }).then((res) => {
this.apiObj = res;
});
},
upsearch() {
this.$API.system.user.list
.req({ name: this.search.keyword, page: 0 })
.then((res) => {
this.apiObj = res;
});
},
//
async getDept() {
let res = await this.$API.system.dept.list.req({ page: 0 });
this.deptdata = genTree(res);
},
//
async getPost() {
let res = await this.$API.system.post.list.req({ page: 0 });
this.postdata = genTree(res);
},
filterNode(value, data) {
console.log(value);
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
filterNodes(value, data) {
console.log(value);
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
//
handleNodeClick(data) {
this.$API.system.user.list
.req({ belong_dept: data.id, page: 0 })
.then((res) => {
this.apiObj = res;
});
},
//
handleNodeClicks(data) {
this.$API.system.user.list.req({ post: data.id, page: 0 }).then((res) => {
this.apiObj = res;
});
},
//
selectionChange(selection) {
this.selection = selection;
},
//Tag
closeTag(name) {
this.userData.splice(this.userData.indexOf(name), 1);
},
addUser() {
this.username = [];
this.userData = [];
if (!this.multiple && this.selection.length > 1) {
this.$message.error("对应的人员只允许选择一人!");
return;
}
if (!this.selection || this.selection.length === 0) {
this.msgError("请选择至少一个人员!");
return;
}
this.selection.forEach((item) => {
this.username.push(item.name);
this.userData.push({ id: item.id, name: item.name });
});
console.log(this.userData);
},
change() {
if (this.tags) {
alert(1);
this.dataValue = this.userData.map((e) => e.id).join(",");
console.log(this.dataValue);
this.$emit("change", this.dataValue);
}
},
submitfrom() {
this.dialoguser = false;
this.change(); //
this.dataValue = this.userData.map((e) => e.id).join(",");
this.$emit("submit", this.dataValue);
},
//
permission() {
this.dialog.permission = true;
this.$nextTick(() => {
this.$refs.permissionDialog.open();
});
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -4,7 +4,6 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<!-- <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> -->
</div> </div>
</el-header> </el-header>
@ -26,7 +25,7 @@
<el-table-column <el-table-column
label="名称" label="名称"
prop="name" prop="name"
width="120" width="100"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="标识" label="标识"
@ -47,15 +46,22 @@
></el-switch> ></el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="喇叭开启区域" prop="name" width="120">
<template #default="scope">
<el-space v-if="scope.row.filter_area_level">{{
filter_area_[scope.row.filter_area_level]
}}</el-space></template
>
</el-table-column>
<el-table-column label="操作" fixed="right" align="right"> <el-table-column label="操作" fixed="right" align="right">
<template #default="scope"> <template #default="scope">
<el-button <el-button
type="primary" type="primary"
link link
size="small" size="small"
@click="adds_edit(scope.row)" @click="adds_edit(scope.row)"
>批量布设</el-button> >批量布设</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
@ -82,18 +88,34 @@
:hidePagination="true" :hidePagination="true"
> >
<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="算法名称" prop="algo_.name" width="150"></el-table-column> <el-table-column
<el-table-column label="视频名称" prop="vchannel_.name" width="150"></el-table-column> label="算法名称"
<el-table-column label="始终开启" prop="always_on" width="150"></el-table-column> prop="algo_.name"
width="150"
></el-table-column>
<el-table-column
label="视频名称"
prop="vchannel_.name"
width="150"
></el-table-column>
<el-table-column label="始终开启" prop="always_on" width="150">
<template #default="scope">
<el-switch
v-model="scope.row.always_on"
:disabled="true"
></el-switch>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="right"> <el-table-column label="操作" fixed="right" align="right">
<template #default="scope"> <template #default="scope">
<el-button <el-popconfirm
type="danger" title="确定删除吗?"
link @confirm="table_del(scope.row, scope.$index)"
size="small"
@click="table_del(scope.row, scope.$index)"
>删除</el-button
> >
<template #reference>
<el-button text type="danger" size="small">删除</el-button>
</template>
</el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
@ -106,7 +128,7 @@
@success="handleSaveSuccess" @success="handleSaveSuccess"
@closed="dialog.save = false" @closed="dialog.save = false"
></save-dialog> ></save-dialog>
<algo-dialog <algo-dialog
v-if="dialog.algos" v-if="dialog.algos"
ref="algoDialog" ref="algoDialog"
@success="handleSaveSuccessss" @success="handleSaveSuccessss"
@ -122,7 +144,7 @@ export default {
name: "algo", name: "algo",
components: { components: {
saveDialog, saveDialog,
algoDialog, algoDialog,
CircleCheckFilled, CircleCheckFilled,
CircleCloseFilled, CircleCloseFilled,
}, },
@ -130,42 +152,51 @@ export default {
return { return {
dialog: { dialog: {
save: false, save: false,
algos: false, algos: false,
},
filter_area_: {
10: "办公生活区以上",
20: "生产一般区以上",
30: "生产重点区以上",
}, },
selection: [], selection: [],
chosen_cate: null, chosen_cate: "",
eventcateList:[], eventcateList: [],
vchannelList:[] vchannelList: [],
}; };
}, },
mounted() { mounted() {
this.getEventCate(); this.getEventCate();
this.getVchannel(); this.getVchannel();
}, },
methods: { methods: {
// //
getEventCate() { getEventCate() {
this.$API.ecm.event_cate.list.req({ self_algo:true,page: 0 }).then((res) => { this.$API.ecm.event_cate.list
this.eventcateList = res; .req({ self_algo: true, page: 0 })
}); .then((res) => {
this.eventcateList = res;
});
}, },
// //
rowClick(row) { rowClick(row) {
this.$API.ecm.vchannel.list.req({ algo: row.id, page: 0 }).then((res) => {
this.vchannelList = res;
});
this.$API.ecm.vchannel.list.req({algo:row.id,page: 0 }).then((res) => {
this.chosen_cate = row.id;
},
//
getVchannel() {
this.$API.ecm.vchannel.list.req({ page: 0 }).then((res) => {
this.vchannelList = res; this.vchannelList = res;
}); });
}, },
// //
getVchannel() {
this.$API.ecm.vchannel.list.req({page: 0 }).then((res) => {
this.vchannelList = res;
});
},
//
adds_edit() { adds_edit() {
this.dialog.algos = true; this.dialog.algos = true;
this.$nextTick(() => { this.$nextTick(() => {
@ -189,19 +220,25 @@ export default {
}); });
}, },
table_del(row) { table_del(row) {
this.$API.ecm.vchannel.delete
this.$API.ecm.vchannel.delete.req(row.id).then((res) => { .req(row.id)
this.$refs.tablevchannel.refresh(); .then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.getVchannel();
}); return res;
})
.catch((err) => {
return err;
});
}, },
// //
handleSaveSuccess() { handleSaveSuccess() {
this.$refs.tablevchannel.refresh(); this.$refs.tablevchannel.refresh();
}, },
//
handleSaveSuccessss() {
this.$refs.tablevchannel.refresh();
},
}, },
}; };
</script> </script>

View File

@ -88,6 +88,7 @@ export default {
// //
open(mode = "add") { open(mode = "add") {
this.mode = mode; this.mode = mode;
this.form.algo = this.$parent.chosen_cate;
this.visible = true; this.visible = true;
return this; return this;
}, },

View File

@ -25,7 +25,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="视频" prop="vchannel"> <el-form-item label="视频" prop="vchannels">
<el-select v-model="form.vchannels" multiple="true"> <el-select v-model="form.vchannels" multiple="true">
<el-option <el-option
v-for="item in vchanneloptions" v-for="item in vchanneloptions"
@ -68,13 +68,13 @@ export default {
// //
form: { form: {
algo: "", algo: "",
vchannel: "", vchannels: [],
always_on: false, always_on: false,
}, },
// //
rules: { rules: {
algo: [{ required: true, message: "请选择算法" }], algo: [{ required: true, message: "请选择算法" }],
vchannel: [{ required: true, message: "请选择视频" }], vchannels: [{ required: true, message: "请选择视频" }],
}, },
algooptions: [], algooptions: [],
vchanneloptions: [], vchanneloptions: [],
@ -89,6 +89,7 @@ export default {
open(mode = "add") { open(mode = "add") {
this.mode = mode; this.mode = mode;
this.visible = true; this.visible = true;
this.form.algo = this.$parent.chosen_cate;
return this; return this;
}, },
// //
@ -105,32 +106,15 @@ export default {
}, },
// //
async submit() { submit() {
var valid = await this.$refs.dialogForm.validate().catch(() => {});
if (!valid) { this.$API.ecm.vchannel.creates.req(this.form).then((res) => {
return false; this.$message.success("操作成功");
} this.visible=false;
this.isSaveing = true;
try { return res;
var res; })
if (this.mode == "add") {
res = await this.$API.ecm.vchannel.creates.req(this.form);
} else if (this.mode == "edit") {
res = await this.$API.ecm.vchannel.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) { setData(data) {

View File

@ -43,7 +43,7 @@
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<sc-title title="音响配置"></sc-title> <sc-title title="音响配置"></sc-title>
<el-form-item label="喇叭" prop="speakers"> <el-form-item label="喇叭" prop="speakers">
<el-select v-model="form.speakers" multiple="true"> <el-select v-model="form.speakers" multiple="true">
<el-option <el-option
v-for="item in speakersptions" v-for="item in speakersptions"
@ -53,6 +53,18 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="喇叭声音" prop="voice_person">
<el-select v-model="form.voice_person">
<el-option
v-for="item in voiceoptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="喇叭开启" prop="speaker_on"> <el-form-item label="喇叭开启" prop="speaker_on">
<el-switch v-model="form.speaker_on"></el-switch> <el-switch v-model="form.speaker_on"></el-switch>
</el-form-item> </el-form-item>
@ -97,7 +109,7 @@ export default {
form: { form: {
speaker_on: true, speaker_on: true,
self_algo: false, self_algo: false,
speakers:[] speakers: [],
}, },
// //
rules: { rules: {
@ -127,7 +139,17 @@ export default {
label: "定位", label: "定位",
}, },
], ],
speakersptions:[], voiceoptions:[
{
value: 3,
label: "男生",
},
{
value: 0,
label: "女生",
},
],
speakersptions: [],
// //
groups: [], groups: [],
groupsProps: { groupsProps: {
@ -149,7 +171,7 @@ export default {
}, },
// //
getSpeakers() { getSpeakers() {
this.$API.third.tdevice.list.req({type:50, page: 0 }).then((res) => { this.$API.third.tdevice.list.req({ type: 50, page: 0 }).then((res) => {
this.speakersptions = res; this.speakersptions = res;
}); });
}, },
@ -186,7 +208,7 @@ export default {
setData(data) { setData(data) {
Object.assign(this.form, data); Object.assign(this.form, data);
debugger; debugger;
console.log(this.form) console.log(this.form);
}, },
}, },
}; };

View File

@ -199,9 +199,8 @@ export default {
this.$API.ecm.event.handle.req(this.form.id, this.form) this.$API.ecm.event.handle.req(this.form.id, this.form)
.then((res) => { .then((res) => {
this.isSaveing = false;
this.visible = false; this.$router.go(-1)
this.$emit("success", this.form, this.mode);
this.$message.success("操作成功"); this.$message.success("操作成功");
return res; return res;
}) })

View File

@ -27,11 +27,13 @@
label="#" label="#"
type="index" type="index"
width="50" width="50"
fixed="left"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="名称" label="名称"
prop="name" prop="name"
width="120" width="120"
fixed="left"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="标识" label="标识"
@ -44,13 +46,31 @@
<span v-if="scope.row.trigger == 20">定位</span> <span v-if="scope.row.trigger == 20">定位</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="音响" prop="speaker_on" width="50"> <el-table-column
label="处理时间"
prop="hanle_minute"
width="80"
></el-table-column>
<el-table-column label="喇叭开启" prop="speaker_on" width="80">
<template #default="scope"> <template #default="scope">
<el-switch <el-switch
v-model="scope.row.speaker_on" v-model="scope.row.speaker_on"
:disabled="true" :disabled="true"
></el-switch> ></el-switch>
</template> </template>
</el-table-column>
<el-table-column
label="喇叭开启区域"
prop="name"
width="120"
>
<template #default="scope">
<el-space v-if="scope.row.filter_area_level">{{
filter_area_[scope.row.filter_area_level]
}}</el-space></template
>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="right"> <el-table-column label="操作" fixed="right" align="right">
<template #default="scope"> <template #default="scope">
@ -224,6 +244,11 @@ export default {
30: "较大风险", 30: "较大风险",
40: "重大风险", 40: "重大风险",
}, },
filter_area_:
{ 10: "办公生活区以上",
20: "生产一般区以上",
30: "生产重点区以上",
},
}; };
}, },
mounted() { mounted() {

View File

@ -64,7 +64,7 @@
</el-col> </el-col>
<el-col :md="12" :sm="24" :xs="24"> <el-col :md="12" :sm="24" :xs="24">
<el-form-item label="接待人"> <el-form-item label="接待人">
<el-select v-model="form.receptionist" placeholder="选择接待人"> <el-select v-model="form.receptionist" disabled placeholder="选择接待人">
<el-option <el-option
v-for="item in receptionistoptions" v-for="item in receptionistoptions"
:key="item.id" :key="item.id"
@ -72,6 +72,11 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<select-user ref="form.receptionist" :user="form.receptionist" :closable="true" :multiple="false" @submit="refresh" >
</select-user>
</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">
@ -99,6 +104,10 @@
:max="32767" :max="32767"
controls-position="right" controls-position="right"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -116,8 +125,12 @@
<script> <script>
import { genTree } from "@/utils/verificate"; import { genTree } from "@/utils/verificate";
import selectUser from '@/layout/components/userselect'
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
components: {
selectUser,
},
data() { data() {
return { return {
loading: false, loading: false,
@ -170,6 +183,16 @@ export default {
this.visible = true; this.visible = true;
return this; return this;
}, },
refresh(data) {
//
console.log(data);
this.form.receptionist=data;
},
// //
submit() { submit() {
this.$refs.dialogForm.validate(async (valid) => { this.$refs.dialogForm.validate(async (valid) => {

View File

@ -1,6 +1,6 @@
<template> <template>
<el-container> <el-container>
<el-tabs style="width: 100%" type="border-card" v-model="activeName" @tab-click="handleClick"> <el-tabs style="width: 100%; height:100%" type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="自定义字段" name="customField"> <el-tab-pane label="自定义字段" name="customField">
<field v-if="activeName==='customField'"></field> <field v-if="activeName==='customField'"></field>
</el-tab-pane> </el-tab-pane>

View File

@ -6,7 +6,7 @@
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow> <scTable ref="table" :data="list" row-key="id" stripe highlightCurrentRow hidePagination>
<el-table-column type="index" width="50"/> <el-table-column type="index" width="50"/>
<el-table-column label="字段标识" prop="field_key"></el-table-column> <el-table-column label="字段标识" prop="field_key"></el-table-column>
<el-table-column label="字段名称" prop="field_name"></el-table-column> <el-table-column label="字段名称" prop="field_name"></el-table-column>
@ -121,9 +121,8 @@
name: "field", name: "field",
data() { data() {
return { return {
apiObj: this.$API.wf.field.list,
id: sessionStorage.getItem('jinYuWorkflowId'), id: sessionStorage.getItem('jinYuWorkflowId'),
list: null, list: [],
type: "add", type: "add",
titleMap: { titleMap: {
add: '新增', add: '新增',
@ -193,28 +192,6 @@
} }
}, },
mounted() { mounted() {
this.list = [
{
id: "5001",
name: "scEcharts",
subtitle: "重新封装的Echarts暴露源对象",
state: "1",
type: "数据",
progress: 70,
user: "sss",
time: "2010-10-10"
},
{
id: "5002",
name: "scEditor",
subtitle: "Tinymce封装的富文本编辑器",
state: "2",
type: "表单",
progress: 40,
user: "sss",
time: "2010-10-10"
}
];
this.getList(); this.getList();
}, },
methods: { methods: {
@ -271,8 +248,7 @@
this.addForm = Object.assign({}, row); this.addForm = Object.assign({}, row);
}, },
async getList() { async getList() {
let res = await this.$API.wf.getCustomfields.get(this.id); let res = await this.$API.wf.workflow.customfields.req(this.id);
console.log(res);
this.list = res; this.list = res;
}, },
}, },

View File

@ -1,381 +1,590 @@
<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="handleAdd"></el-button> <el-button
</div> type="primary"
</el-header> icon="el-icon-plus"
<el-main class="nopadding"> @click="handleAdd"
<el-table ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow> ></el-button>
<el-table-column type="index" width="50"/> </div>
<el-table-column label="名称" prop="name"></el-table-column> </el-header>
<el-table-column label="是否隐藏"> <el-main class="nopadding">
<template #default="scope"> <scTable
<span v-if="scope.row.is_hidde"></span> ref="table"
<span v-else></span> :data="list"
</template> row-key="id"
</el-table-column> stripe
<el-table-column label="顺序ID" prop="sort"></el-table-column> highlightCurrentRow
<el-table-column label="类型"> hidePagination
<template #default="scope"> >
<el-tag effect="plain" v-if="scope.row.type==0"> <el-table-column label="ID" prop="id"></el-table-column>
普通类型 <el-table-column label="名称" prop="name"></el-table-column>
</el-tag> <el-table-column label="是否隐藏">
<el-tag effect="plain" v-if="scope.row.type==1"> <template #default="scope">
初始状态 <span v-if="scope.row.is_hidde"></span>
</el-tag> <span v-else></span>
<el-tag effect="plain" v-if="scope.row.type==2"> </template>
结束状态 </el-table-column>
</el-tag> <el-table-column label="顺序ID" prop="sort"></el-table-column>
</template> <el-table-column label="类型">
</el-table-column> <template #default="scope">
<el-table-column label="参与人类型"> <el-tag effect="plain" v-if="scope.row.type == 0">
<template #default="scope">{{ options_[scope.row.participant_type] }}</template> 普通类型
</el-table-column> </el-tag>
<el-table-column label="创建时间" prop="create_time"></el-table-column> <el-tag effect="plain" v-if="scope.row.type == 1">
<el-table-column label="操作" fixed="right" align="right" width="120"> 初始状态
<template #default="scope"> </el-tag>
<el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button> <el-tag effect="plain" v-if="scope.row.type == 2">
<el-popconfirm title="确定删除吗?"> 结束状态
<template #reference> </el-tag>
<el-button type="text" size="small">删除</el-button> </template>
</template> </el-table-column>
</el-popconfirm> <el-table-column label="参与人类型">
</template> <template #default="scope">{{
</el-table-column> options_[scope.row.participant_type]
</el-table> }}</template>
<el-dialog </el-table-column>
v-model="dialogVisible" <el-table-column label="分配方式">
:title="titleMap[type]" <template #default="scope">{{
> options2_[scope.row.distribute_type]
<el-form }}</template>
ref="Form" </el-table-column>
:model="addForm" <el-table-column label="创建时间" prop="create_time"></el-table-column>
label-width="100px" <el-table-column label="操作" fixed="right" align="right" width="120">
label-position="right" <template #default="scope">
:rules="rule" <el-button type="text" size="small" @click="handleEdit(scope.row)"
> >编辑</el-button
<el-form-item label="名称" prop="name"> >
<el-input v-model="addForm.name" placeholder="名称"/> <el-popconfirm title="确定删除吗?">
</el-form-item> <template #reference>
<el-form-item <el-button type="text" size="small">删除</el-button>
label="是否隐藏" </template>
prop="is_hidden" </el-popconfirm>
label-width="120px" </template>
> </el-table-column>
<el-switch v-model="addForm.is_hidden"></el-switch> </scTable>
</el-form-item> <el-dialog v-model="dialogVisible" :title="titleMap[type]">
<el-form
ref="Form"
:model="addForm"
label-width="100px"
label-position="right"
>
<el-form-item label="名称" prop="name">
<el-input v-model="addForm.name" placeholder="名称" />
</el-form-item>
<el-form-item label="是否隐藏" prop="is_hidden" label-width="120px">
<el-switch v-model="addForm.is_hidden"></el-switch>
</el-form-item>
<el-form-item label="状态顺序" prop="sort"> <el-form-item label="状态顺序" prop="sort">
<el-input v-model="addForm.sort" type="number" placeholder="状态顺序"/> <el-input
</el-form-item> v-model="addForm.sort"
<el-form-item label="状态类型" prop="type"> type="number"
<el-select style="width: 100%" v-model="addForm.type" placeholder="请选择"> placeholder="状态顺序"
<el-option />
v-for="item in options" </el-form-item>
:key="item.value" <el-form-item label="状态类型" prop="type">
:label="item.label" <el-select
:value="item.value"> style="width: 100%"
</el-option> v-model="addForm.type"
</el-select> placeholder="请选择"
</el-form-item> >
<el-form-item <el-option
label="允许撤回" v-for="item in options"
prop="enable_retreat" :key="item.value"
label-width="120px" :label="item.label"
> :value="item.value"
<el-switch v-model="addForm.enable_retreat"></el-switch> >
</el-form-item> </el-option>
<el-form-item label="参与者类型" prop="participant_type"> </el-select>
<el-select style="width: 100%" v-model="addForm.participant_type" placeholder="请选择" </el-form-item>
@change="typeChange"> <el-form-item
<el-option label="允许撤回"
v-for="item in typeoptions" prop="enable_retreat"
:key="item.value" label-width="120px"
:label="item.label" >
:value="item.value"> <el-switch v-model="addForm.enable_retreat"></el-switch>
</el-option> </el-form-item>
</el-select> <el-form-item label="参与者类型" prop="participant_type">
</el-form-item> <el-select
<el-form-item label="参与者" prop="participant" v-if="addForm.participant_type==1"> style="width: 100%"
<el-select style="width: 100%" v-model="participant" placeholder="请选择参与者"> v-model="addForm.participant_type"
<el-option v-for="item in staffs" :key="item.id" :label="item.name" :value="item.id"> placeholder="请选择"
</el-option> >
</el-select> <el-option
</el-form-item> v-for="item in typeoptions"
<el-form-item label="参与者" prop="participant" v-if="addForm.participant_type==2"> :key="item.value"
<el-select style="width: 100%" v-model="participants" multiple placeholder="请选择参与者"> :label="item.label"
<el-option v-for="item in staffs" :key="item.id" :label="item.name" :value="item.id"> :value="item.value"
</el-option> >
</el-select> </el-option>
</el-form-item> </el-select>
<el-form-item label="参与者" prop="participant" v-if="addForm.participant_type==7"> </el-form-item>
<el-select style="width: 100%" v-model="participant" placeholder="请选择字段"> <el-form-item
<el-option v-for="item in fieldList" :key="item.id" :label="item.field_name" label="参与者"
:value="item.field_key"> prop="participant"
</el-option> v-if="addForm.participant_type == 1"
</el-select> >
</el-form-item> <el-select
<el-form-item label="分配方式" prop="participant" v-if="addForm.participant_type==2"> style="width: 100%"
<el-select style="width: 100%" v-model="addForm.distribute_type" placeholder="请选择分配方式"> v-model="addForm.participant"
<el-option label="主动接单" value="1"></el-option> placeholder="请选择参与者"
<el-option label="直接处理" value="2"></el-option> >
<el-option label="随机分配" value="3"></el-option> <el-option
<el-option label="全部处理" value="4"></el-option> v-for="item in staffs"
</el-select> :key="item.id"
</el-form-item> :label="item.name"
<el-form-item label="角色" prop="participant" v-if="addForm.participant_type==4"> :value="item.id"
<el-select style="width: 100%" v-model="participants" multiple placeholder="请选择角色"> >
<el-option v-for="item in roles" :key="item.id" :label="item.name" :value="item.id"> </el-option>
</el-option> </el-select>
</el-select> </el-form-item>
</el-form-item> <el-form-item
<el-form-item label="过滤策略" prop="participant" v-if="addForm.participant_type==4"> label="参与者"
<el-select style="width: 100%" v-model="addForm.filter_policy" placeholder="请选择过滤策略"> prop="participant"
<el-option label="无" value="0"></el-option> v-if="addForm.participant_type == 2"
<el-option label="和工单同属以及上级部门" value="1"></el-option> >
<el-option label="和创建人同属以及上级部门" value="2"></el-option> <el-select
<el-option label="和上步处理人同属以及上级部门" value="3"></el-option> style="width: 100%"
</el-select> v-model="addForm.participant"
</el-form-item> multiple
<el-form-item label="代码选择" prop="participant" v-if="addForm.participant_type==9"> placeholder="请选择参与者"
>
<el-option
v-for="item in staffs"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="参与者"
prop="participant"
v-if="addForm.participant_type == 7"
>
<el-select
style="width: 100%"
v-model="addForm.participant"
placeholder="请选择字段"
>
<el-option
v-for="item in fieldList"
:key="item.id"
:label="item.field_name"
:value="item.field_key"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="分配方式"
prop="participant"
>
<el-select
style="width: 100%"
v-model="addForm.distribute_type"
placeholder="请选择分配方式"
>
<el-option
v-for="item in dis_type_options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="角色"
prop="participant"
v-if="addForm.participant_type == 4"
>
<el-select
style="width: 100%"
v-model="addForm.participant"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roles"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="岗位"
prop="participant"
v-if="addForm.participant_type == 10"
>
<el-select
style="width: 100%"
v-model="addForm.participant"
multiple
placeholder="请选择岗位"
>
<el-option
v-for="item in roles"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="过滤策略"
prop="participant"
v-if="
addForm.participant_type == 4 || addForm.participant_type == 0
"
>
<el-select
style="width: 100%"
v-model="addForm.filter_policy"
placeholder="请选择过滤策略"
>
<el-option label="无" value="0"></el-option>
<el-option label="和工单同属以及上级部门" value="1"></el-option>
<el-option label="和创建人同属以及上级部门" value="2"></el-option>
<el-option
label="和上步处理人同属以及上级部门"
value="3"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="代码选择" prop="participant" v-if="addForm.participant_type==9">
<el-select style="width: 100%" v-model="participants" placeholder="请选择代码"> <el-select style="width: 100%" v-model="participants" placeholder="请选择代码">
<el-option v-for="item in codes" :key="item.func" :label="item.name" :value="item.func"> <el-option v-for="item in codes" :key="item.func" :label="item.name" :value="item.func">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="抄送给" prop="participant"> <el-form-item
<el-select style="width: 100%" v-model="addForm.participant_cc" multiple placeholder="请选择抄送给谁"> label="代码名"
<el-option v-for="item in staffs" :key="item.id" :label="item.name" :value="item.id"> prop="participant"
v-if="addForm.participant_type == 9"
>
<!-- <el-select style="width: 100%" v-model="participants" placeholder="请选择代码">
<el-option v-for="item in codes" :key="item.func" :label="item.name" :value="item.func">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> <el-input v-model="addForm.participant" placeholder="方法名" />
<el-form-item label="字段状态"> </el-form-item>
<el-button @click="addWordStateChange">添加修改</el-button> <el-form-item label="抄送给" prop="participant">
<el-row v-for="(item,$index) in stateChange" :key="item+$index" style="margin-top: 2px"> <el-select
<el-col :span="11"> style="width: 100%"
<el-select style="width: 100%" v-model="item.name" placeholder="请选择字段"> v-model="addForm.participant_cc"
<el-option v-for="item in fieldList" :key="item.id" :label="item.field_name" multiple
:value="item.field_key"> placeholder="请选择抄送给谁"
</el-option> >
</el-select> <el-option
</el-col> v-for="item in staffs"
<el-col :span="1" style="height: 1px;"></el-col> :key="item.id"
<el-col :span="8"> :label="item.name"
<el-select style="width: 100%" v-model="item.value" placeholder="请选择状态"> :value="item.id"
<el-option >
v-for="item in state_fields" </el-option>
:label="item.label" </el-select>
:value="item.value" </el-form-item>
:key="item.value" <el-form-item label="字段状态">
></el-option> <el-button @click="addWordStateChange">添加修改</el-button>
</el-select> <el-row
</el-col> v-for="(item, $index) in stateChange"
<el-col :span="2" style="text-align: center" v-if="$index!==0"> :key="item + $index"
<i style="margin-top: 2px"
class="el-icon-remove-outline" >
style="color: red;font-size: 16px;" <el-col :span="11">
@click.prevent="removeStateChange($index)" <el-select
></i> style="width: 100%"
</el-col> v-model="item.name"
</el-row> placeholder="请选择字段"
</el-form-item> >
</el-form> <el-option
<div style="text-align: right"> v-for="item in fieldList"
<el-button type="danger" @click="dialogVisible = false">取消</el-button> :key="item.id"
<el-button type="primary" @click="submitHandle('Form')">确认</el-button> :label="item.field_name"
</div> :value="item.field_key"
</el-dialog> >
</el-main> </el-option>
</el-container> </el-select>
</el-col>
<el-col :span="1" style="height: 1px"></el-col>
<el-col :span="8">
<el-select
style="width: 100%"
v-model="item.value"
placeholder="请选择状态"
>
<el-option
v-for="item in state_fields"
:label="item.label"
:value="item.value"
:key="item.value"
></el-option>
</el-select>
</el-col>
<el-col :span="2" style="text-align: center" v-if="$index !== 0">
<i
class="el-icon-remove-outline"
style="color: red; font-size: 16px"
@click.prevent="removeStateChange($index)"
></i>
</el-col>
</el-row>
</el-form-item>
</el-form>
<div style="text-align: right">
<el-button type="danger" @click="dialogVisible = false"
>取消</el-button
>
<el-button type="primary" @click="submitHandle('Form')"
>确认</el-button
>
</div>
</el-dialog>
</el-main>
</el-container>
</template> </template>
<script> <script>
export default { export default {
name: "state", name: "state",
data() { data() {
return { return {
apiObj: this.$API.wf.state.list, id: sessionStorage.getItem("jinYuWorkflowId"),
id: sessionStorage.getItem('jinYuWorkflowId'), list: null,
list: null, type: "add",
type: "add", titleMap: {
titleMap: { add: "新增",
add: '新增', edit: "编辑",
edit: '编辑', show: "查看",
show: '查看' },
}, participant: "",
participant: '', participants: [],
participants: [], roles: [],
roles: [], staffs: [],
staffs: [], stateChange: [],
stateChange: [], fieldList: [],
fieldList: [], //
// addForm: {
addForm: { name: "",
name: '', is_hidden: false,
is_hidden: false, sort: "",
sort: '', type: "",
type: '', 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: {}// },
}, //
// rules: {
rules: { name: [{ required: true, message: "请输入工作流名称" }],
name: [ },
{required: true, message: '请输入工作流名称'} options_: {
] 0: "无处理",
}, 1: "个人",
options_: { 2: "多人",
"0": '无处理', 4: "角色",
"1": '个人', 6: "脚本",
"2": '多人', 7: "工单的字段",
"4": '角色', 9: "代码获取",
"6": '脚本', 10: "岗位",
"7": '工单的字段', },
"9": '代码获取', options2_: {
}, 1: "主动接单",
options: [{ 2: "直接处理",
value: 0, 3: "随机分配",
label: '普通类型' 4: "全部处理",
}, { },
value: 1, options: [
label: '初始状态' {
}, { value: 0,
value: 2, label: "普通类型",
label: '结束状态' },
}], {
typeoptions: [{ value: 1,
value: 0, label: "初始状态",
label: '无处理' },
}, { {
value: 1, value: 2,
label: '个人' label: "结束状态",
}, { },
value: 2, ],
label: '多人' typeoptions: [
} {
, { value: 0,
value: 4, label: "无处理",
label: '角色' },
} {
, { value: 1,
value: 6, label: "个人",
label: '脚本' },
} {
, { value: 2,
value: 7, label: "多人",
label: '工单的字段' },
} {
, { value: 4,
value: 9, label: "角色",
label: '代码获取' },
}], {
state_fields: [ value: 6,
{ label: "脚本",
value: 1, },
label: '只读' {
}, { value: 7,
value: 2, label: "工单的字段",
label: '必填' },
}, { {
value: 3, value: 9,
label: '可选' label: "代码获取",
}, { },
value: 4, {
label: '隐藏' value: 10,
}, label: "岗位",
], },
editId: null, ],
dialogVisible: false, state_fields: [
} {
}, value: 1,
mounted() { label: "只读",
debugger; },
this.id = sessionStorage.getItem('jinYuWorkflowId'); {
this.getList(); value: 2,
this.getUsers(); label: "必填",
this.getRole(); },
this.getField(); {
}, value: 3,
methods: { label: "可选",
// },
addWordStateChange() { {
this.stateChange.push({name: '', value: ''}) value: 4,
}, label: "隐藏",
// },
removeStateChange(index) { ],
this.stateChange.splice(index, 1) dis_type_options: [
}, {
// label: "主动接单",
async getUsers() { value: 1,
let staffs = await this.$API.system.user.get({page: 0}); },
this.staffs = staffs; {
}, label: "直接处理",
// value: 2,
async getRole() { },
let roles = await this.$API.system.role.get({page: 0}); {
this.roles = roles; label: "随机分配",
}, value: 3,
// },
async getField() { {
let fieldList = await this.$API.wf.getCustomfields.get(this.id); label: "全部处理",
this.fieldList = fieldList; value: 4,
}, },
handleAdd() { ],
this.type = 'add'; editId: null,
this.dialogVisible = true; dialogVisible: false,
}, };
submitHandle() { },
let that = this; mounted() {
debugger; this.id = sessionStorage.getItem("jinYuWorkflowId");
this.$refs.Form.validate((valid) => { this.getList();
if (valid) { this.getUsers();
let state_fields = {}; this.getRole();
if (this.stateChange.length > 0) { this.getField();
for (let i = 0; i < this.stateChange.length; i++) { },
state_fields[this.stateChange[i].name] = this.stateChange[i].value; methods: {
} //
} addWordStateChange() {
this.addForm.state_fields = state_fields; this.stateChange.push({ name: "", value: "" });
this.addForm.participant = this.addForm.participant_type === 1 ? this.participant : this.participants; },
that.isSaveing = true; //
let res = null; removeStateChange(index) {
if (that.type === 'add') { this.stateChange.splice(index, 1);
that.addForm.workflow = this.id; },
res = that.$API.wf.stateAdd.post(that.addForm) //
} else { async getUsers() {
res = that.$API.wf.stateEdit.put(that.editId, that.addForm); let staffs = await this.$API.system.user.list.req({ page: 0 });
} this.staffs = staffs;
if (res.err_msg) { },
that.isSaveing = false; //
} else { async getRole() {
that.isSaveing = false; let roles = await this.$API.system.role.list.req({ page: 0 });
that.dialogVisible = false; this.roles = roles;
that.getList(); },
} //
} async getField() {
}) let fieldList = await this.$API.wf.workflow.customfields.req(this.id);
}, this.fieldList = fieldList;
handleEdit(row) { },
this.type = 'edit'; handleAdd() {
this.editId = row.id; this.type = "add";
this.dialogVisible = true; this.dialogVisible = true;
this.addForm = Object.assign({}, row); },
}, async submitHandle() {
async getList() { let that = this;
let res = await this.$API.wf.getWorkflowState.get(this.id); that.isSaveing = true;
console.log(res); let res = null;
this.list = res; if (that.type === "add") {
}, that.addForm.workflow = this.id;
}, res = await that.$API.wf.state.create.req(that.addForm);
} } else {
res = await that.$API.wf.state.update.req(that.editId, that.addForm);
}
if (res.err_msg) {
that.isSaveing = false;
} else {
that.isSaveing = false;
that.dialogVisible = false;
that.getList();
}
// this.$refs.Form.validate((valid) => {
// if (valid) {
// let state_fields = {};
// if (this.stateChange.length > 0) {
// for (let i = 0; i < this.stateChange.length; i++) {
// state_fields[this.stateChange[i].name] = this.stateChange[i].value;
// }
// }
// this.addForm.state_fields = state_fields;
// this.addForm.participant = this.addForm.participant_type === 1 ? this.participant : this.participants;
// that.isSaveing = true;
// let res = null;
// if (that.type === 'add') {
// that.addForm.workflow = this.id;
// res = that.$API.wf.stateAdd.post(that.addForm)
// } else {
// res = that.$API.wf.stateEdit.put(that.editId, that.addForm);
// }
// if (res.err_msg) {
// that.isSaveing = false;
// } else {
// that.isSaveing = false;
// that.dialogVisible = false;
// that.getList();
// }
// }
// })
},
handleEdit(row) {
this.type = "edit";
this.editId = row.id;
this.dialogVisible = true;
this.addForm = Object.assign({}, row);
},
async getList() {
let res = await this.$API.wf.workflow.states.req(this.id);
console.log(res);
this.list = res;
},
},
};
</script> </script>
<style scoped> <style scoped>
</style> </style>

View File

@ -1,11 +1,17 @@
<template> <template>
<el-main class="nopadding"> <el-container>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button> <el-header>
<el-table <div class="left-panel">
:data="list" <el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
style="width: 100%" </div>
</el-header>
<el-main class="nopadding">
<scTable
:data="list" ref="table"
row-key="id" stripe highlightCurrentRow hidePagination
> >
<el-table-column type="index" width="50"/> <el-table-column label="ID" prop="id"></el-table-column>
<el-table-column label="名称" prop="name"></el-table-column> <el-table-column label="名称" prop="name"></el-table-column>
<el-table-column label="定时器(单位秒)" prop="timer"></el-table-column> <el-table-column label="定时器(单位秒)" prop="timer"></el-table-column>
<el-table-column label="源状态"> <el-table-column label="源状态">
@ -38,7 +44,7 @@
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </scTable>
<el-dialog <el-dialog
v-model="dialogVisible" v-model="dialogVisible"
:title="titleMap[type]" :title="titleMap[type]"
@ -48,7 +54,6 @@
:model="addForm" :model="addForm"
label-width="130px" label-width="130px"
label-position="right" label-position="right"
:rules="rule"
> >
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="addForm.name" placeholder="名称"/> <el-input v-model="addForm.name" placeholder="名称"/>
@ -78,6 +83,7 @@
</el-form-item> </el-form-item>
<el-form-item label="条件表达式" prop="condition_expression"> <el-form-item label="条件表达式" prop="condition_expression">
<vue-json-editor <vue-json-editor
style="width:100%"
v-model="addForm.condition_expression" v-model="addForm.condition_expression"
:showBtns="false" :showBtns="false"
:mode="'code'" :mode="'code'"
@ -98,6 +104,9 @@
<el-form-item label="是否校验必填" prop="field_require_check"> <el-form-item label="是否校验必填" prop="field_require_check">
<el-switch v-model="addForm.field_require_check"></el-switch> <el-switch v-model="addForm.field_require_check"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="提交时调用" prop="on_submit_func">
<el-input v-model="addForm.on_submit_func" placeholder="提交时调用"/>
</el-form-item>
</el-form> </el-form>
<div style="text-align: right"> <div style="text-align: right">
<el-button type="danger" @click="dialogVisible = false">取消</el-button> <el-button type="danger" @click="dialogVisible = false">取消</el-button>
@ -105,6 +114,8 @@
</div> </div>
</el-dialog> </el-dialog>
</el-main> </el-main>
</el-container>
</template> </template>
<script> <script>
@ -176,36 +187,34 @@
this.addForm = Object.assign({}, row); this.addForm = Object.assign({}, row);
}, },
async getList() { async getList() {
let res = await this.$API.wf.getWorkflowTransition.get(this.id); let res = await this.$API.wf.workflow.transitions.req(this.id);
this.list = res; this.list = res;
}, },
async getStateList() { async getStateList() {
let res = await this.$API.wf.getWorkflowState.get(this.id); let res = await this.$API.wf.workflow.states.req(this.id);
console.log(res); console.log(res);
this.stateList = res; this.stateList = res;
}, },
submitHandle(){ async submitHandle(){
let that = this; let that = this;
let res = null;
if (that.type === 'add') {
debugger;
that.addForm.workflow = this.id;
res = await that.$API.wf.transition.create.req(that.addForm);
} else {
res = await that.$API.wf.transition.update.req(that.editId, that.addForm);
}
if(res.err_msg){
that.isSaveing = false;
}else{
that.isSaveing = false;
that.dialogVisible = false;
that.getList();
}
this.$refs.Form.validate((valid) => { this.$refs.Form.validate((valid) => {
if (valid) { if (valid) {
let res = null;
if (that.type === 'add') {
debugger;
that.addForm.workflow = this.id;
res = that.$API.wf.transitionAdd.post(that.addForm);
} else {
res = that.$API.wf.transitionEdit.put(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();
}
that.isSaveing = false;
that.limitedVisible = false;
that.getList();
} }
}) })
}, },

View File

@ -15,7 +15,7 @@
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id"> <scTable ref="table" :apiObj="apiObj" row-key="id">
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column label="ID" prop="id" min-width="100"></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="view_permission_check" min-width="150"> <el-table-column label="工单查看权限校验" prop="view_permission_check" min-width="150">
<template #default="scope"> <template #default="scope">
@ -46,6 +46,9 @@
<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-input v-model="addForm.code" clearable></el-input>
</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>
</el-form-item> </el-form-item>