gaoshp
2024-03-27 f7ba7210f90f1f311c4c9f42b617bfa247697119
对接工位组接口
已添加1个文件
已修改3个文件
143 ■■■■ 文件已修改
src/api/model/basicdata.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/pms.png 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicdata/machine/workstation.vue 129 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/basicdata.js
@@ -1,7 +1,7 @@
/*
 * @Date: 2024-03-24 11:37:47
 * @LastEditors: gaoshp
 * @LastEditTime: 2024-03-26 23:48:08
 * @LastEditTime: 2024-03-27 20:46:02
 * @FilePath: /cps-web/src/api/model/basicdata.js
 */
import config from "@/config"
@@ -20,6 +20,16 @@
        name: "保存工位组",
        put: async function(params){
            return await http.put(this.url, params);
        },
        post: async function(params){
            return await http.post(this.url, params);
        },
    },
    deleteWorkGroup: {
        url: `${config.API_URL}/blade-cps/workstation/deleteGroup`,
        name: "删除工位组",
        delete: async function(params){
            return await http.delete(this.url, params);
        }
    }
}
src/assets/pms.png
src/utils/request.js
@@ -204,7 +204,7 @@
            axios({
                method: 'delete',
                url: url,
                data: data,
                params: data,
                ...config
            }).then((response) => {
                resolve(response.data);
src/views/basicdata/machine/workstation.vue
@@ -77,22 +77,73 @@
                            <el-container>
                                <el-main class="nopadding">
                                    <el-tree ref="group" class="menu" node-key="id" :data="group"
                                        :current-node-key="treeCheckKey" :highlight-current="true"
                                        :expand-on-click-node="false" :check-on-click-node="true"
                                        :default-expanded-keys="[1]" :filter-node-method="groupFilterNode"
                                        :current-node-key="treeCheckKey"
                                        :highlight-current="true"
                                        :expand-on-click-node="false"
                                        :check-on-click-node="true"
                                        :default-expanded-keys="[1]"
                                        :render-content="renderContent"
                                        :filter-node-method="groupFilterNode"
                                        @node-click="groupClick"></el-tree>
                                </el-main>
                            </el-container>
                        </el-aside>
                        <el-container>
                            <el-header>
                            <el-main class="" v-show="addGroupShow">
                                <el-form
                                    v-show="treeCheckedNode.id == 1"
                                    :model="form" :rules="rules" ref="dialogForm" label-width="200px"
                                    label-position="left">
                                    <el-form-item label="产线标签" prop="groupTag">
                                        <el-select v-model="form.groupTag" clearable placeholder="产线标签"
                                            style="width: 240px">
                                            <el-option v-for="item in beltline_type" :key="item.dictKey"
                                                :label="item.dictValue" :value="item.dictKey" />
                                        </el-select>
                                    </el-form-item>
                                    <el-form-item label="产线名称" prop="name">
                                        <el-input style="width: 240px" v-model="form.name" clearable
                                            placeholder="产线名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="产线排序" prop="sort">
                                        <el-input-number v-model="form.sort" :min="0" :max="10" />
                                    </el-form-item>
                                    <el-form-item label="备注" prop="remark">
                                        <el-input type="textarea" style="width: 240px" v-model="form.remark" clearable
                                            placeholder="备注"></el-input>
                                    </el-form-item>
                                </el-form>
                                <el-form v-show="group_tag.map(item => item.dictKey).includes(treeCheckedNode.groupTag) || beltline_type.map(item => item.dictKey).includes(treeCheckedNode.groupTag) || treeCheckedNode.id == 101"
                                    :model="form" :rules="rules" ref="dialogForm" label-width="200px"
                                    label-position="left">
                                    <el-form-item label="工位组标签" prop="groupTag">
                                        <el-select v-model="form.groupTag" clearable placeholder="工位组标签"
                                            style="width: 240px">
                                            <el-option v-for="item in group_tag" :key="item.dictKey"
                                                :label="item.dictValue" :value="item.dictKey" />
                                        </el-select>
                                    </el-form-item>
                                    <el-form-item label="工位组名称" prop="name">
                                        <el-input style="width: 240px" v-model="form.name" clearable
                                            placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="工位组排序" prop="sort">
                                        <el-input-number v-model="form.sort" :min="0" :max="10" />
                                    </el-form-item>
                                    <el-form-item label="备注" prop="remark">
                                        <el-input type="textarea" style="width: 240px" v-model="form.remark" clearable
                                            placeholder="备注"></el-input>
                                    </el-form-item>
                                </el-form>
                            </el-main>
                            <el-header v-show="!addGroupShow">
                                <div class="left-panel">
                                    <el-button type="primary" plain>新增下级</el-button>
                                    <el-button v-show="!['1', '101'].includes(treeCheckedNode.id)" type="danger"
                                    <el-button @click="addChild" type="primary" plain>新增下级</el-button>
                                    <el-button @click="deleteWorkGroup" v-show="!['1', '101'].includes(treeCheckedNode.id)" type="danger"
                                        plain>删除</el-button>
                                </div>
                            </el-header>
                            <el-main class="">
                            <el-main class="" v-show="!addGroupShow">
                                <ul class="show-info" v-show="['1', '101'].includes(treeCheckedNode.id)">
                                    <li>名称: {{ treeCheckedNode.name }}</li>
                                    <li>排序: {{ treeCheckedNode.sort }}</li>
@@ -144,11 +195,10 @@
                                    </el-form-item>
                                </el-form>
                            </el-main>
                            <el-main v-show="!['1', '101'].includes(treeCheckedNode.id)">
                            <el-main v-show="!['1', '101'].includes(treeCheckedNode.id) || addGroupShow">
                                <el-button @click="saveWorkstationGroup" style="width: 100px" type="primary"
                                    plain>提交</el-button>
                            </el-main>
                        </el-container>
                    </el-container>
                </el-tab-pane>
@@ -159,6 +209,7 @@
</template>
<script>
import pmsPng from '@/assets/pms.png'
export default {
    name: 'system',
    data() {
@@ -183,7 +234,8 @@
            treeCheckedNode: {},
            treeCheckKey: [],
            beltline_type: [],
            group_tag: []
            group_tag: [],
            addGroupShow: false
        }
    },
    watch: {
@@ -192,6 +244,7 @@
        },
        treeCheckedNode: {
            handler(val) {
                this.addGroupShow = false
                Object.keys(this.form).forEach(key => {
                    this.form[key] = val?.[key]
                })
@@ -204,6 +257,17 @@
        this.queryList()
    },
    methods: {
        renderContent (h, {node,data}) {
            console.log(node,data)
            let img = data.groupTag == 'fms_beltline'
            return h('span',{
            },
            img ? h('img', {
                src: pmsPng
            }, '') : '',
            data.name)
        },
        init() {
            this.$API.system.dic.getDic.get({ code: 'beltline_type' }).then(res => {
                this.beltline_type = res.data
@@ -254,24 +318,41 @@
            }
            return newData
        },
        saveWorkstationGroup() {
            this.$API.basicdata.saveWorkstationGroup.put({
                code: "00001.10003",
                fullName: "",
                groupCategory: 1,
                groupTag: "fms_beltline",
                groupType: "group_workstation",
                id: "1772275862784131074",
                name: "测试新增产线",
                parentId: "1",
                remark: "",
                sort: 2,
                status: 1
            }).then(res => {
        async saveWorkstationGroup() {
            const validate = await this.$refs.dialogForm.validate().catch(()=>{})
            if(!validate){ return false }
            if (this.addGroupShow) {
                let data = Object.assign({
                    code: "",
                    fullName: "",
                    id: "",
                    parentId: this.treeCheckedNode.id,
                    status: 1,
                    groupType: this.treeCheckedNode.groupType,
                    groupCategory: this.treeCheckedNode.groupCategory
                },this.form)
                return this.$API.basicdata.saveWorkstationGroup.post(data).then(res => {
                    console.log(res)
                    this.queryList(true)
                })
            }
            let data = Object.assign({},this.treeCheckedNode,this.form)
            this.$API.basicdata.saveWorkstationGroup.put(data).then(res => {
                console.log(res)
                this.queryList(true)
            })
        },
        deleteWorkGroup () {
            this.$API.basicdata.deleteWorkGroup.delete({
                groupId: this.treeCheckedNode.id
            }).then(() => {
                this.queryList()
            })
        },
        addChild () {
            this.addGroupShow = true
            this.$refs.dialogForm.resetFields()
        },
        groupFilterNode() {
        },