gaoshp
2024-04-01 df220d8a73a149ee83908120a649f630dc6794f7
src/views/console/workstation/Dialog.vue
@@ -7,107 +7,123 @@
                    基础信息
                </el-col>
                <el-col :span="12">
                    <el-form-item label="工号" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="工位编号" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位编号" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="工位名称" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位名称" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="工位类型" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options.types" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="所属工位组" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                        <el-tree-select v-model="form.userName" :data="options.group" :render-after-expand="false"
                            style="width: 240px" />
                        <!-- <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select> -->
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="状态" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options.status" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="头像" prop="avatar">
                        <sc-upload v-model="form.avatar" title="上传头像"></sc-upload>
                    <el-form-item label="工位图片" prop="avatar">
                        <sc-upload v-model="form.avatar" title="工位图片"></sc-upload>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="生产日历" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options.calendarList" :key="item.id" :label="item.name"
                                :value="item.id" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="24" style="padding:12px 0;">
                    机器信息
                </el-col>
                <el-col :span="12">
                    <el-form-item label="工号" prop="userName">
                        <el-input v-model="form.userName" placeholder="用于登录系统" clearable></el-input>
                    <el-form-item label="选择机器" prop="userName">
                        <!-- <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options.linkWays" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select> -->
                        <el-radio-group v-model="form.userName">
                            <el-radio v-for="item in options.linkWays" :key="item.value" :value="item.value">{{item.label}}</el-radio>
                        </el-radio-group>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="姓名" prop="name">
                        <el-input v-model="form.name" placeholder="请输入完整的真实姓名" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="手机号" prop="name">
                        <el-input v-model="form.name" placeholder="请输入手机号" clearable></el-input>
                    <el-form-item label="机器编号" prop="userName">
                        <el-input style="width: 240px" v-model="form.userName" placeholder="机器编号" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="24" style="padding:12px 0;">
                    扩展信息
                </el-col>
                <el-col :span="12">
                    <el-form-item label="状态" prop="name">
                        <el-select v-model="form.group" multiple filterable style="width: 100%">
                            <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id" />
                    <el-form-item label="工种" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options.work_type" :key="item.dictKey" :label="item.dictValue"
                                :value="item.dictKey" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="岗位" prop="dept">
                        <el-select v-model="form.group" multiple filterable style="width: 100%">
                            <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id" />
                    <el-form-item label="加工属性" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options.machining_type" :key="item.dictKey" :label="item.dictValue"
                                :value="item.dictKey" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="邮箱" prop="name">
                        <el-input v-model="form.name" placeholder="请输入邮箱" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="部门" prop="dept">
                        <el-select v-model="form.group" multiple filterable style="width: 100%">
                            <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id" />
                    <el-form-item label="程序传输方式" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option   label="FTP"  value="1" />
                            <el-option   label="串口"  value="" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="PIN码" prop="name">
                        <el-input v-model="form.name" placeholder="请输入PIN码" clearable></el-input>
                    <el-form-item label="FTP目录" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="入职时间" prop="name">
                        <el-date-picker style="width: 100%;" v-model="value1" type="date" placeholder="Pick a day"
                            :size="size" />
                    <el-form-item label="工作台" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="关联账号" prop="name">
                        <el-input v-model="form.name" placeholder="请输入关联账号" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="数据权限配置" prop="name">
                        <el-input v-model="form.name" placeholder="请输入数据权限配置" clearable></el-input>
                    <el-form-item label="数据权限" prop="userName">
                        <el-select v-model="type" style="width: 240px">
                            <el-option v-for="item in options" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
            </el-row>
@@ -120,16 +136,38 @@
</template>
<script>
import deepmerge from 'deepmerge'
import http from "@/utils/request"
export default {
    emits: ['success', 'closed'],
    props: {
        option: {
            type: Object
        }
    },
    computed: {
        options() {
            let group = deepmerge([], this.option.group)
            group[0].disabled = true
            return {
                ...this.option,
                group,
                calendarList: this.calendarList,
                linkWays: this.linkWays,
                work_type: this.work_type,
                machining_type: this.machining_type
            }
        }
    },
    data() {
        return {
            mode: "add",
            titleMap: {
                add: '添加员工',
                edit: '修改员工',
                show: '查看'
                add: '新建工位',
                edit: '编辑工位',
                // show: '查看'
            },
            params: {},
            visible: false,
            isSaveing: false,
            //表单数据
@@ -183,38 +221,38 @@
                ]
            },
            //所需数据选项
            groups: [],
            groupsProps: {
                value: "id",
                multiple: true,
                checkStrictly: true
            },
            depts: [],
            deptsProps: {
                value: "id",
                checkStrictly: true
            }
            calendarList: [],
            work_type: [],
            machining_type: [],
            linkWays: [
                {
                    label: '关联机器',
                    value: '0'
                }, {
                    label: '创建同名机器',
                    value: '1'
                }
            ]
        }
    },
    mounted() {
        // this.getGroup()
        // this.getDept()
    created() {
        this.$API.workstation.calendarList.get().then(res => {
            this.calendarList = res.data
        })
        this.$API.system.dic.getDic.get({ code: 'work_type' }).then(res => {
            this.work_type = res.data
        })
        this.$API.system.dic.getDic.get({ code: 'machining_type' }).then(res => {
            this.machining_type = res.data
        })
    },
    methods: {
        //显示
        open(mode = 'add') {
        open(mode = 'add', params) {
            this.mode = mode;
            this.visible = true;
            this.params = params
            return this
        },
        //加载树数据
        async getGroup() {
            var res = await this.$API.system.role.list.get();
            this.groups = res.data.rows;
        },
        async getDept() {
            var res = await this.$API.system.dept.list.get();
            this.depts = res.data;
        },
        //表单提交方法
        submit() {