opt:代码优化;

This commit is contained in:
2025-06-07 23:05:20 +08:00
parent 04e3a9e396
commit 296016dc7f
62 changed files with 1236 additions and 354 deletions

View File

@@ -51,6 +51,7 @@
:value="item.key"
/>
</el-select>
<rrOperation />
</div>
<crudOperation show="" :permission="permission" />
@@ -78,7 +79,12 @@
<el-input v-model="form.email" style="width: 200px;" />
</el-form-item>
<br v-if="!crud.status.edit">
<el-form-item v-if="crud.status.add" label="部门" prop="depts" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
<el-form-item
v-if="crud.status.add"
label="部门"
prop="depts"
:rules="[{ required: true, message: '请选择部门', trigger: 'change' }]"
>
<treeselect
v-model="form.depts"
:load-options="loadDepts"
@@ -100,7 +106,7 @@
<el-radio label="">女</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="is_uesd">
<el-form-item label="状态" prop="is_used">
<el-switch
v-model="form.is_used"
active-color="#409EFF"
@@ -149,6 +155,29 @@
label="姓名"
:min-width="flexWidth('person_name',crud.data,'姓名')"
/>
<el-table-column
prop="extperson_id"
label="是否今天值班员"
:min-width="flexWidth('extperson_id', crud.data, '是否今天值班员')"
>
<template v-slot="scope">
<span :style="scope.row.extperson_id == 1 ? 'color: orange; font-weight: bold;' : ''">
{{ scope.row.extperson_id == 1 ? '是' : '' }}
</span>
</template>
</el-table-column>
<el-table-column label="设为值班员" align="center" prop="extperson_id">
<template slot-scope="scope">
<el-switch
v-model="scope.row.extperson_id"
active-color="#409EFF"
inactive-color="#F56C6C"
active-value="1"
inactive-value="0"
@change="changeExtperson(scope.row, scope.row.extperson_id)"
/>
</template>
</el-table-column>
<el-table-column prop="gender" label="性别" :min-width="flexWidth('person_name',crud.data,'性别')" />
<el-table-column prop="phone" label="电话" :min-width="flexWidth('phone',crud.data,'电话')" />
<el-table-column prop="email" label="邮箱" :min-width="flexWidth('email',crud.data,'邮箱')" />
@@ -156,13 +185,22 @@
<template slot-scope="scope">
<span v-for=" item in scope.row.depts" :key="item.index">{{ item.name }} </span>
</template>
</el-table-column>>
</el-table-column>
>
<el-table-column label="状态" align="center" prop="enabled">
<template slot-scope="scope">
<span :style="{'color': caseStatusColorFilter(scope.row.is_used)}">{{ enabledTypeOptions.find(item => {return item.key == scope.row.is_used}).display_name }}</span>
<span :style="{'color': caseStatusColorFilter(scope.row.is_used)}">{{
enabledTypeOptions.find(item => {
return item.key == scope.row.is_used
}).display_name
}}</span>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建日期" :min-width="flexWidth('create_time',crud.data,'创建日期')" />
<el-table-column
prop="create_time"
label="创建日期"
:min-width="flexWidth('create_time',crud.data,'创建日期')"
/>
<el-table-column
label="操作"
fixed="right"
@@ -175,14 +213,19 @@
<el-dropdown size="mini">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-refresh-right"><span @click="resetPassword(scope.row)">重置密码</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-refresh-right"><span @click="resetPassword(scope.row)">重置密码</span>
</el-dropdown-item>
<el-dropdown-item icon="el-icon-key">
<span @click="openDeptDrawer(scope.row)">分配部门</span>
</el-dropdown-item>
<el-dropdown-item icon="el-icon-key">
<span @click="openDataDialog(scope.row)">数据权限</span>
</el-dropdown-item>
<el-dropdown-item icon="el-icon-lock"><span @click="changeEnabled(scope.row)">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}账号</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-lock"><span @click="changeEnabled(scope.row)">{{
enabledTypeOptions.find(item => {
return item.key !== scope.row.is_used
}).display_name
}}账号</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-check">
<span @click="openRoleDrawer(scope.row)">分配角色</span>
</el-dropdown-item>
@@ -191,6 +234,7 @@
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</el-col>
@@ -239,6 +283,7 @@
</div>
</div>
</el-drawer>
<el-dialog
:close-on-click-modal="true"
:visible.sync="dataPerm"
@@ -276,6 +321,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
@@ -310,13 +356,23 @@
<el-table-column prop="person_name" label="用户名称" min-width="100" show-overflow-tooltip />
</el-table>
</el-dialog>
<relevance-user-dialog :dialog-show.sync="relevanceUser" :is-single="false" :users="userIds" @selectUsers="selectUsers" />
<relevance-dept-dialog :dialog-show.sync="relevanceDept" :is-single="false" :depts="deptIds" @selectDepts="selectDepts" />
<relevance-user-dialog
:dialog-show.sync="relevanceUser"
:is-single="false"
:users="userIds"
@selectUsers="selectUsers"
/>
<relevance-dept-dialog
:dialog-show.sync="relevanceDept"
:is-single="false"
:depts="deptIds"
@selectDepts="selectDepts"
/>
</div>
</template>
<script>
import crudUser from '@/views/system/user/user'
import crudUser, { confirm } from '@/views/system/user/user'
import crudDept from '@/views/system/dept/dept'
import crudDataPermission from '@/views/system/dataPermission/dataPermission'
import { getAll, getLevel } from '@/views/system/role/role'
@@ -330,6 +386,8 @@ import { mapGetters } from 'vuex'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import RelevanceUserDialog from '@/views/system/user/dialog/relevanceUserDialog'
import RelevanceDeptDialog from '@/views/system/user/dialog/relevanceDeptDialog'
import crudProductOut from '@/views/wms/stor_manage/out/storinvout'
import crudCustomerbase from '@/views/wms/base_manage/customer/customer'
let userRoles = []
const defaultForm = {
@@ -340,13 +398,22 @@ const defaultForm = {
gender: '男',
email: null,
is_used: true,
extperson_id: true,
roles: [],
phone: null,
password: null
}
export default {
name: 'User',
components: { RelevanceDeptDialog, RelevanceUserDialog, Treeselect, crudOperation, rrOperation, udOperation, pagination },
components: {
RelevanceDeptDialog,
RelevanceUserDialog,
Treeselect,
crudOperation,
rrOperation,
udOperation,
pagination
},
cruds() {
return CRUD({ title: '用户', idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
},
@@ -369,6 +436,10 @@ export default {
{ key: true, display_name: '激活' },
{ key: false, display_name: '锁定' }
],
enabledOptions: [
{ key: true, display_name: '设为值班员' },
{ key: false, display_name: '取消值班员' }
],
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
@@ -445,7 +516,6 @@ export default {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.crud.delAllLoading = true
this.crud.doDelete(datas)
}).catch(() => {
@@ -583,15 +653,22 @@ export default {
},
// 切换部门
handleNodeClick(data) {
this.query.dept_id = data.dept_id
this.query.needAll = true
this.crud.toQuery()
this.query.dept_id = null
},
changeExtperson(data, val) {
debugger
crudUser.edit(data).then(res => {
this.crud.notify(this.dict.label.is_used[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
},
// 改变状态
changeEnabled(row) {
const satus = this.enabledTypeOptions.find(item => { return item.key !== row.is_used })
const satus = this.enabledTypeOptions.find(item => {
return item.key !== row.is_used
})
this.$confirm('此操作将' + satus.display_name + '账号:' + row.username + ', 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -795,7 +872,8 @@ export default {
.then(_ => {
done()
})
.catch(_ => {})
.catch(_ => {
})
},
cancelForm() { // 关闭
this.syncDrawer = false
@@ -832,6 +910,7 @@ export default {
// 如果节点取消选中,则取消该节点下的子节点选中
data.children && data.children.length > 0 && setChildreChecked(data.children, false)
}
function setChildreChecked(node, isChecked) {
node.forEach(item => {
item.children && item.children.length > 0 && setChildreChecked(item.children, isChecked)

View File

@@ -56,6 +56,12 @@ export function updateEmail(form) {
data
})
}
export function confirm(id) {
return request({
url: '/api/users/confirm/' + id,
method: 'get'
})
}
export default { add, edit, del, updatePass }
export default { add, edit, del, updatePass, confirm }

View File

@@ -0,0 +1,233 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-width="80px"
label-suffix=":"
>
<el-form-item label="单位信息">
<el-input
v-model="query.search"
clearable
style="width: 300px"
size="mini"
placeholder="输入单位编码或单位名称"
prefix-icon="el-icon-search"
class="filter-item"
/>
</el-form-item>
<rrOperation />
</el-form>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog
:close-on-click-modal="false"
:before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="编码" prop="unit_code">
<el-input v-model="form.unit_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="名称" prop="unit_name">
<el-input v-model="form.unit_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="外部标识" prop="ext_id">
<el-input v-model="form.ext_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="数据精度" prop="qty_precision">
<!-- <el-input v-model="form.qty_precision" style="width: 370px;" />-->
<el-input-number
v-model="form.qty_precision"
:min="1"
:max="6"
label="描述文字"
style="width: 150px;"
@change="handleChange"
/>
</el-form-item>
<el-form-item label="是否启用" prop="is_used">
<el-switch
v-model="form.is_used"
active-color="#409EFF"
inactive-color="#F56C6C"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table
ref="table"
v-loading="crud.loading"
:data="crud.data"
size="mini"
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column prop="unit_code" label="编码" />
<el-table-column prop="unit_name" label="名称" />
<el-table-column prop="qty_precision" label="数据精度" />
<el-table-column prop="update_name" label="修改者" />
<el-table-column prop="update_time" label="修改时间" width="135" />
<el-table-column prop="is_used" label="启用 ">
<template slot-scope="scope">
<el-switch
v-model="scope.row.is_used"
active-color="#409EFF"
inactive-color="#F56C6C"
@change="changeEnabled(scope.row, scope.row.is_used)"
/>
</template>
</el-table-column>
<el-table-column
v-permission="['admin','mdPbMeasureunit:edit','mdPbMeasureunit:del']"
fixed="right"
label="操作"
width="150px"
align="center"
>
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudMdPbMeasureunit from './vehicle_rfid'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = {
unit_id: null,
unit_code: null,
unit_name: null,
qty_precision: null,
is_used: true,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_time: null,
is_delete: null,
ext_id: null
}
export default {
dicts: ['is_used'],
name: 'MeasureUnit',
// eslint-disable-next-line vue/no-unused-components
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '计量单位',
url: 'api/bmMeasureUnit',
optShow: {
add: true,
reset: true
},
idField: 'unit_id',
sort: 'unit_id,desc',
crudMethod: { ...crudMdPbMeasureunit }
})
},
data() {
return {
permission: {},
rules: {
unit_id: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
unit_code: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
unit_name: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
qty_precision: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
is_used: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
create_id: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
create_name: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
create_time: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
is_delete: [
{ required: true, message: '不能为空', trigger: 'blur' }
]
}
}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
// 改变状态
changeEnabled(data, val) {
this.$confirm('此操作将改变' + data.unit_name + '状态, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
crudMdPbMeasureunit.edit(data).then(res => {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
}).catch(() => {
if (data.is_used === false) {
data.is_used = true
return
}
if (data.is_used === true) {
data.is_used = false
}
})
}).catch(() => {
if (data.is_used === false) {
data.is_used = true
return
}
if (data.is_used === true) {
data.is_used = false
}
})
},
handleChange(value) {
console.log(value)
}
}
}
</script>
<style scoped>
</style>

View File

@@ -262,6 +262,12 @@
'',crud.data,'备注')"
show-overflow-tooltip
/>
<el-table-column prop="point_location" width="80" label="确认取货">
<template slot-scope="scope">
{{ scope.row.point_location == '1' ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column prop="form_data" label="前置任务号" width="100" />
<el-table-column prop="create_name" label="创建人" />
<el-table-column prop="create_time" label="创建时间" width="150" />
<el-table-column prop="update_name" label="修改人" width="100" />
@@ -324,6 +330,7 @@ export default {
cruds() {
return CRUD({
title: '点位',
url: 'api/point',
idField: 'id',
optShow: {

View File

@@ -43,16 +43,6 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="点位编码">
<el-input
v-model="query.point_code"
clearable
style="width: 240px"
placeholder="起点"
@input="handleSearchInput('point_code')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="query.createTime"
@@ -99,6 +89,66 @@
/>
</el-select>
</el-form-item>
<el-form-item label="起点1">
<el-input
v-model="query.point_code1"
clearable
style="width: 240px"
placeholder="起点1"
@input="handleSearchInput('point_code1')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="终点1">
<el-input
v-model="query.point_code2"
clearable
style="width: 240px"
placeholder="终点1"
@input="handleSearchInput('point_code2')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="起点2">
<el-input
v-model="query.point_code3"
clearable
style="width: 240px"
placeholder="起点2"
@input="handleSearchInput('point_code3')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="终点2">
<el-input
v-model="query.point_code4"
clearable
style="width: 240px"
placeholder="终点2"
@input="handleSearchInput('point_code4')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="执行步骤">
<el-input
v-model="query.task_step"
clearable
style="width: 240px"
placeholder="执行步骤"
@input="handleSearchInput('task_step')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="物料或单据号" label-width="100">
<el-input
v-model="query.material_code"
clearable
style="width: 240px"
placeholder="物料或单据号"
@input="handleSearchInput('material_code')"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-button class="filter-item" type="success" icon="el-icon-delete" size="mini" @click="delQueryItem">清空条件</el-button>
<rrOperation />
</el-form>
@@ -394,6 +444,16 @@ export default {
this.query.task_id = ''
this.query.vehicle_code = ''
this.query.point_code = ''
this.query.more_status = ''
this.query.material_code = ''
this.query.task_step = ''
this.query.point_code4 = ''
this.query.point_code3 = ''
this.query.point_code2 = ''
this.query.point_code1 = ''
this.query.task_type = ''
this.query.status = ''
this.query.vehicle_code = ''
this.crud.toQuery()
},
taskScheduler() {

View File

@@ -18,6 +18,7 @@
size="mini"
placeholder="请选择/搜索"
class="filter-item"
popper-append-to-body="false"
@change="crud.toQuery()"
>
<el-option
@@ -28,6 +29,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="单据编码">
<el-input
v-model="query.code"
@@ -296,6 +298,6 @@ export default {
}
}
</script>
<style scoped>
</style>

View File

@@ -98,7 +98,7 @@
</el-form-item>
</template>
<rrOperation />
</el-form>2
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->

View File

@@ -152,7 +152,7 @@
<el-table-column prop="update_time" label="修改时间" width="140" show-tooltip-when-overflow />
<el-table-column prop="unit_name" label="单位" show-tooltip-when-overflow />
<el-table-column prop="vehicle_form_data" label="物料扩展信息" width="300" show-tooltip-when-overflow />
<el-table-column prop="source_form_type" label="单据编号" show-tooltip-when-overflow />
<!-- <el-table-column prop="source_form_type" label="单据编号" show-tooltip-when-overflow />-->
<!-- <el-table-column-->
<!-- label="操作"-->
<!-- fixed="right"-->

View File

@@ -70,6 +70,17 @@
@input="handleSearchInput('vehicle_code')"
/>
</el-form-item>
<el-form-item label="用料单号">
<el-input
v-model="query.prd_ppbom_no"
clearable
size="mini"
placeholder="请输入用料单号"
prefix-icon="el-icon-search"
class="filter-item"
@input="handleSearchInput('prd_ppbom_no')"
/>
</el-form-item>
<el-form-item label="入库日期" prop="analyseData">
<el-date-picker
v-model="query.datepick"
@@ -80,6 +91,26 @@
end-placeholder="结束日期"
/>
</el-form-item>
<el-form-item label="是否显示CTU库库存" label-width="150px">
<el-switch
v-model="query.isCtu"
:active-value="true"
:inactive-value="false"
active-color="#13ce66"
inactive-color="#ff4949"
@change="hand"
/>
</el-form-item>
<el-form-item label="是否显示转运架库存" label-width="150px">
<el-switch
v-model="query.isShelf"
:active-value="true"
:inactive-value="false"
active-color="#13ce66"
inactive-color="#ff4949"
@change="hand"
/>
</el-form-item>
<rrOperation />
</el-form>
<el-button class="filter-item" type="danger" icon="el-icon-unlock" size="mini" @click="unlock">
@@ -120,6 +151,7 @@
<el-table-column prop="counts" label="物料总库存" min-width="90" show-tooltip-when-overflow />
<el-table-column prop="erpCounts" label="ERP实时库存" min-width="90" show-tooltip-when-overflow />
<el-table-column prop="differCount" label="立库-ERP库存差异" min-width="120" show-tooltip-when-overflow />
<el-table-column prop="prd_ppbom_no" label="用料单号" min-width="150" show-tooltip-when-overflow />
<el-table-column prop="unit_id" label="单位" show-tooltip-when-overflow>
<template slot-scope="scope">{{ tableEnum.label.bm_measure_unit[scope.row.unit_id] }}</template>
</el-table-column>
@@ -226,6 +258,7 @@ export default {
this.query.material = ''
this.query.vehicle_code = ''
this.query.pcsn = ''
this.query.prd_ppbom_no = ''
this.crud.toQuery()
},
// 钩子在获取表格数据之前执行false 则代表不获取数据
@@ -269,6 +302,9 @@ export default {
this.crud.toQuery()
})
},
hand() {
this.crud.toQuery()
},
unlock() {
debugger
if (this.crud.selections.length === 0) {