fujunling
2023-06-15 426cd61c707f13a471b56330b3ba7b588b6cb245
Source/UBCS-WEB/src/components/template/FlowPath.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,209 @@
<template>
        <avue-crud ref="crud" :table-loading="loading" :data="data" v-model="form" :option="option" :page.sync="page"
            :search.sync="search" @on-load="getDataList" @row-save="handleSave" @row-del="handleDelete"
            @row-update="handleEdit" @refresh-change="handleRefresh" @size-change="handleSizePage"
            @current-change="handleCurrentPage">
        </avue-crud>
</template>
<script>
import { getFlowpathList, getStartList, flowpathSave, flowpathDelete } from '@/api/template/flowpath.js'
export default {
    name: 'FlowPath',
    props: {
        code: {
            typeof: String,
            required: true,
            default: ""
        }
    },
    data() {
        return {
            loading: false,
            page: {
                currentPage: 1,
                pageSize: 10,
                total: 0
            },
            search: {},
            delIds: [],
            data: [],
            startData: [],
            form: {},
            option: {
                height: "auto",
                border: true,
                align: 'center',
                menuAlign: 'center',
                index: true,
                searchMenuSpan: 8,
                searchBtn: false,
                emptyBtn: false,
                columnBtn: false,
                defaultSort: {
                    prop: 'id,name,description,version',
                    order: 'descending'
                },
                column: [
                    {
                        label: '模板key',
                        prop: 'modelKey',
                        width:120,
                        sortable: true,
                        type: 'tree',
                        dicData: [],
                        props: {
                            label: "key",
                            value: "key"
                        },
                        rules: [{
                            required: true,
                            message: '模板key不能为空',
                            trigger: 'blur'
                        }],
                        nodeClick: (data) => {
                            console.log(data)
                            // èŠ‚ç‚¹ç‚¹å‡»çš„æ—¶å€™ä¼šèŽ·å–åˆ°æ•°æ®
                            this.form.modelName = data.name
                        }
                    }, {
                        label: '模板名称',
                        prop: 'modelName',
                        sortable: true,
                        width:220,
                        addDisabled: true,
                        editDisabled: true,
                    },
                    {
                        label: '模板用途',
                        prop: 'buttonTypeKey',
                        type: 'tree',
                        width:120,
                        dicUrl: '/api/ubcs-flow/processTS/tt',
                        dicMethod: 'post',
                        props: {
                            value: "codee",
                            label: "namee",
                        },
                    },
                    {
                        label: '模板描述',
                        prop: 'description',
                        type:'textarea'
                    },
                ]
            },
        }
    },
    created() {
        this.getStart()
    },
    methods: {
        async getStart() {
            const response = await getStartList()
            if (response.status === 200) {
                console.log(response.data.data.records)
                const data = response.data.data.records
                let newData = data.map(item => {
                    const { key, name, version } = item
                    return { key, name, version }
                })
                this.option.column[0].dicData = newData
            }
        },
        // èŽ·å–åˆ—è¡¨
        async getDataList() {
            this.loading = false
            console.log(this.search)
            const { pageSize, currentPage } = this.page
            let param = { size: pageSize, current: currentPage }
            const response = await getFlowpathList({ ...param, ...{ templateId: this.code } })
            if (response.status === 200) {
                console.log(response)
                this.loading = false
                const data = response.data.data
                this.data = data.records
                this.page.total = data.total
            } else this.loading = false
        },
        // æ–°å¢ž
        async handleSave(row, done, loading) {
            console.log(row)
            const response = await flowpathSave({ ...row, ...{ templateId: this.code } })
            if (response.status === 200) {
                loading()
                console.log(response)
                this.$message({
                    type: 'success',
                    message: '新增数据成功!'
                })
                done()
                this.getDataList()
            }
        },
        // ç¼–辑
        async handleEdit(row, index, done, loading) {
            console.log(row)
            const { modelName, modelKey, buttonTypeKey, id ,description} = row
            let param = { modelName, modelKey, buttonTypeKey, id,description }
            const response = await flowpathSave({ ...param, ...{ templateId: this.code } })
            if (response.status === 200) {
                loading()
                this.$message({
                    type: 'success',
                    message: '修改数据成功!'
                })
                done()
                this.getDataList()
            }
        },
        // åˆ é™¤å•条
        handleDelete(row) {
            console.log(row)
            const { id } = row
            this.deleteSysInfo({ id: id })
        },
        // åˆ é™¤æŽ¥å£
        deleteSysInfo(param) {
            this.$confirm('是否确定删除选择的模板流程?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(async () => {
                // æŽ¥å£
                const response = await flowpathDelete(param)
                if (response.status === 200) {
                    console.log(response)
                    this.$message({
                        type: 'success',
                        message: '删除成功!'
                    });
                    this.getDataList()
                }
            })
        },
        // enter搜索
        handleEnter() {
            if (this.search[this.selectValue] === '') return
            else this.getDataList()
        },
        // è¾“入框清空
        handleClear() {
        },
        // åˆ·æ–°æŒ‰é’®
        handleRefresh() {
            this.getDataList()
        },
        handleSizePage(event) {
            this.page.pageSize = event
        },
        handleCurrentPage(event) {
            this.page.currentPage = event
        },
    }
}
</script>