This commit is contained in:
那些花儿
2025-08-01 14:45:20 +08:00
parent fc0d86c812
commit d4ba5aa689
81 changed files with 6051 additions and 3117 deletions
@@ -120,11 +120,11 @@ layout("/layouts/platform.html"){
},
listCategory() {
// this.$axios.get("/platform/warmFlow/category/list").then((res) => {
// if (res.code === 0) {
// this.categoryOptions = res.data
// }
// })
this.$axios.post("/flow/category/list").then((res) => {
if (res.code === 0) {
this.categoryOptions = res.data
}
})
}
},
created() {
@@ -1,5 +1,5 @@
const assigneeForm = {
template: /*language=HTML*/`
var assigneeForm = {
template: /*language=HTML*/ `
<el-form-item label="参与者">
<div>
<!-- 模式选择 -->
@@ -148,15 +148,14 @@ const assigneeForm = {
this.assigneeText = this.model["assigneeText"] || ""
this.assigneeMode = this.model["assigneeMode"] || "manual"
if(this.assigneeMode === "initiator"){
if (this.assigneeMode === "initiator") {
this.assignee = "initiator"
this.assigneeText = "流程发起人"
}
if(this.assigneeMode === "manual"){
if (this.assigneeMode === "manual") {
this.manualInput = value || ""
}
},
handleModeChange() {
@@ -181,7 +180,7 @@ const assigneeForm = {
loadSelectUsers() {
let userIds = this.model[this.field].split(",")
$.get("/flow/design/assigneeEcho", { userIds: JSON.stringify(userIds) }).then(res => {
$.get("/flow/design/assigneeEcho", { userIds: JSON.stringify(userIds) }).then((res) => {
if (res.code === 0) {
this.selectedUsers = res.data
this.loadUsers()
@@ -192,7 +191,7 @@ const assigneeForm = {
loadUsers() {
$.get("/flow/design/assigneePage", {
...this.pageForm
}).then(res => {
}).then((res) => {
if (res.code === 0) {
this.userList = res.data.list
this.pageForm.totalCount = res.data.totalCount
@@ -207,19 +206,18 @@ const assigneeForm = {
// 设置表格选中数据
setTableSelection() {
// 如果当前表格中有该用户,选中TA
this.userList.forEach(row => {
const exist = this.selectedUsers.map(item => item.id).includes(row.id)
this.userList.forEach((row) => {
const exist = this.selectedUsers.map((item) => item.id).includes(row.id)
if (exist) {
this.$refs.userTableRef.toggleRowSelection(row, true)
}
})
},
confirmSelection() {
const selection = this.$refs.userTableRef.selection
this.assignee = selection.map(item => item.id).join(",")
this.assigneeText = selection.map(item => item.username).join(",")
this.assignee = selection.map((item) => item.id).join(",")
this.assigneeText = selection.map((item) => item.username).join(",")
this.updateModelValue()
this.dialogVisible = false
},
@@ -251,4 +249,4 @@ const assigneeForm = {
this.loadUsers()
}
}
}
}
@@ -0,0 +1,120 @@
var buttonConfig = {
template: /*language=HTML*/ `
<el-form-item label="按钮配置">
{{model}}
<el-table :data="model['buttonConfig']" style="width: 100%" border>
<!-- <el-table-column prop="value" label="值" width="120">-->
<!-- <template slot-scope="{ row }">-->
<!-- <el-input v-model="row.value" disabled></el-input>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="originalText" label="原始文本" width="100"></el-table-column>
<el-table-column prop="replacementText" label="替换文本">
<template slot-scope="{ row }">
<el-input v-model="row.replacementText" :disabled="row.disabled"></el-input>
</template>
</el-table-column>
<el-table-column prop="theme" label="主题">
<template slot-scope="{ row }">
<el-select v-model="row.theme" placeholder="请选择" :disabled="row.disabled">
<el-option label="primary" value="primary"></el-option>
<el-option label="success" value="success"></el-option>
<el-option label="warning" value="warning"></el-option>
<el-option label="danger" value="danger"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="icon" label="图标" width="100">
<template slot-scope="{ row }">
<el-input v-model="row.icon" placeholder="请输入图标名称" :disabled="row.disabled"></el-input>
</template>
</el-table-column>
<el-table-column prop="visible" label="是否可见" width="100">
<template slot-scope="{ row }">
<el-switch v-model="row.visible" :disabled="row.disabled"></el-switch>
</template>
</el-table-column>
</el-table>
</el-form-item>
`,
props: {
model: {
type: Object,
required: true
}
// field: {
// type: String,
// required: true
// }
},
data() {
return {
tableData: [],
button: {},
defaultConfig: [
{ value: 0, originalText: "发起申请" },
{ value: 1, originalText: "同意申请" },
{ value: 2, originalText: "拒绝申请" },
{ value: 3, originalText: "退回上一步" },
{ value: 4, originalText: "跳转" },
{ value: 5, originalText: "重新提交" },
{ value: 6, originalText: "退回发起人" },
{ value: 20, originalText: "会签拒绝申请" }
]
}
},
watch: {
"model.buttonConfig": {
handler(val) {
this.$set(this.model, "buttonConfig", val)
},
deep: true
},
"model.performType": {
handler(val) {
if (val === "ALL") {
// 会签只有同意不同意
this.$set(this.model, "buttonConfig", [
{ value: 1, originalText: "同意", visible: true, disabled: true },
{ value: 20, originalText: "不同意", visible: true, disabled: true }
])
} else {
// 普通任务
// const visibleConfigs = this.model.buttonConfig.filter((item) => item.visible)
// if (visibleConfigs.length) {
// this.$set(this.model, "buttonConfig", visibleConfigs)
// } else {
// this.$set(this.model, "buttonConfig", [
// { value: 1, originalText: "同意", visible: true, disabled: false },
// { value: 2, originalText: "拒绝", visible: true, disabled: false },
// { value: 3, originalText: "退回上一步", visible: true, disabled: false },
// { value: 4, originalText: "跳转", visible: true, disabled: false },
// { value: 6, originalText: "退回发起人", visible: true, disabled: false }
// ])
// }
}
},
deep: true
},
"model.name": {
handler(val) {
if (val === "startTask") {
// 申请只有发起申请
this.$set(this.model, "buttonConfig", [{ value: 0, originalText: "提交", visible: true, disabled: false }])
}
},
deep: true,
immediate: true
}
},
methods: {
init() {
if (this.model["buttonConfig"] === undefined) {
this.$set(this.model, "buttonConfig", this.defaultConfig)
}
}
},
created() {
this.init()
}
}
@@ -35,7 +35,9 @@
'candidateGroups',
'candidateHandler',
'assigneeText',
'assigneeMode'
'assigneeMode',
'buttonConfig',
'enableNextOperator'
]"
>
<!-- <template v-slot:form-item-task-form="{model,field}">-->
@@ -74,6 +76,14 @@
</el-form-item>
</template>
<template v-slot="{model,field}">
<el-form-item label="指定下一步处理人">
<el-checkbox v-model="model['enableNextOperator']">指定下一步处理人</el-checkbox>
</el-form-item>
<button-config :model="model" :field="field"></button-config>
</template>
<!-- <template v-slot="{model,field}">-->
<!-- <el-form-item label="表单查看URL">-->
<!-- <el-input v-model="model[instanceViewUrl]"></el-input>-->
@@ -84,12 +94,14 @@
</body>
<script>
<!--#include('assigneeForm.js'){}#-->
<!--#include('buttonConfig.js'){}#-->
Vue.use(SnakerflowDesigner.default)
const vue = new Vue({
el: "#app",
components: {
"assignee-form": assigneeForm
"assignee-form": assigneeForm,
"button-config": buttonConfig
},
data() {
return {
@@ -204,11 +204,11 @@ layout("/layouts/platform.html"){
},
listCategory() {
// this.$axios.get("/platform/warmFlow/category/list").then((res) => {
// if (res.code === 0) {
// this.categoryOptions = res.data
// }
// })
this.$axios.post("/flow/category/list").then((res) => {
if (res.code === 0) {
this.categoryOptions = res.data
}
})
}
},
created() {