123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <template>
- <basic-container>
- <avue-form
- ref="form"
- :option="option"
- v-model="form"
- :upload-before="uploadBefore"
- :upload-after="uploadAfter"
- />
- </basic-container>
- </template>
- <script>
- import { deployUpload } from "@/api/flow/flow";
- import { flowCategory } from "@/util/flow";
- export default {
- data() {
- return {
- form: {
- flowCategory: "",
- tenantId: "",
- flowFile: [],
- file: {}
- },
- option: {
- labelWidth: 120,
- menuBtn: false,
- column: [
- {
- label: "流程类型",
- prop: "flowCategory",
- type: "select",
- dicUrl: `/api/blade-system/dict/dictionary?code=flow`,
- props: {
- label: "dictValue",
- value: "dictKey"
- },
- row: true,
- span: 12,
- dataType: "number",
- rules: [
- {
- required: true,
- message: "请选择流程类型",
- trigger: "blur"
- }
- ]
- },
- {
- label: "流程模式",
- prop: "flowMode",
- type: "radio",
- dicData: [
- {
- label: "通用流程",
- value: 1
- },
- {
- label: "定制流程",
- value: 2
- }
- ],
- value: 1,
- row: true,
- span: 12,
- rules: [
- {
- required: true,
- message: "请选择流程模式",
- trigger: "blur"
- }
- ]
- },
- {
- label: "所属租户",
- prop: "tenantId",
- type: "tree",
- multiple: true,
- dicUrl: "/api/blade-system/tenant/select",
- props: {
- label: "tenantName",
- value: "tenantId"
- },
- display: false,
- row: true,
- span: 12,
- rules: [
- {
- required: true,
- message: "请选择所属租户",
- trigger: "blur"
- }
- ]
- },
- {
- label: "附件上传",
- prop: "flowFile",
- type: "upload",
- loadText: "附件上传中,请稍等",
- span: 24,
- propsHttp: {
- res: "data"
- },
- tip: "请上传 bpmn20.xml 标准格式文件",
- action: "/api/blade-flow/manager/check-upload"
- }
- ]
- }
- };
- },
- watch: {
- "form.flowMode"() {
- this.$refs.form.option.column.filter(item => {
- if (item.prop === "tenantId") {
- item.display = this.form.flowMode === 2;
- }
- });
- }
- },
- methods: {
- uploadBefore(file, done) {
- this.$message.success("部署开始");
- this.file = file;
- done();
- },
- uploadAfter(res, done, loading) {
- if (!this.form.flowCategory) {
- this.$message.warning("清先选择流程类型");
- loading();
- return false;
- }
- if (this.form.flowMode === 2 && !this.form.tenantId) {
- this.$message.warning("清先选择对应租户");
- loading();
- return false;
- }
- if (res.success) {
- deployUpload(
- flowCategory(this.form.flowCategory),
- this.form.tenantId ? this.form.tenantId.join(",") : "",
- [this.file]
- ).then(res => {
- const data = res.data;
- if (data.success) {
- done();
- } else {
- this.$message.error(data.msg);
- loading();
- }
- });
- } else {
- this.$message.warning("请上传 bpmn20.xml 标准格式文件");
- loading();
- return false;
- }
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- .basic-container /deep/ .basic-container__card {
- height: calc(100vh - 125px);
- }
- </style>
|