提交部署
This commit is contained in:
parent
91b1c5bccb
commit
a61704bc5c
|
@ -41,6 +41,14 @@ export function updateOrder(data, submit) {
|
|||
})
|
||||
}
|
||||
|
||||
// 生产订单完工
|
||||
export function finishOrder(id) {
|
||||
return request({
|
||||
url: `/bst/order/${id}/finish`,
|
||||
method: 'put',
|
||||
})
|
||||
}
|
||||
|
||||
// 删除生产订单
|
||||
export function delOrder(id) {
|
||||
return request({
|
||||
|
|
|
@ -19,14 +19,6 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="leaderName">
|
||||
<el-input
|
||||
v-model="queryParams.leaderName"
|
||||
placeholder="请输入负责人名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责工序" prop="process">
|
||||
<el-input
|
||||
v-model="queryParams.process"
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<template>
|
||||
<el-link type="primary" @click="handleClick" :disabled="id == null">{{name | dv}}</el-link>
|
||||
<el-link type="primary" @click="handleClick" :disabled="disabled">{{name | dv}}</el-link>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { checkPermi } from '@/utils/permission'
|
||||
|
||||
export default {
|
||||
name: 'OrderLink',
|
||||
props: {
|
||||
|
@ -16,6 +18,12 @@ export default {
|
|||
default: null,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
// 禁用的情况:1.没有id 2.没有权限
|
||||
disabled() {
|
||||
return this.id == null || !checkPermi(['bst:order:query']);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleClick() {
|
||||
this.$emit('click');
|
||||
|
|
|
@ -12,6 +12,13 @@
|
|||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="orderStatus">
|
||||
<el-checkbox-group v-model="queryParams.orderStatusList" @change="handleQuery">
|
||||
<el-checkbox-button v-for="dict in dict.type.order_status" :key="dict.value" :label="dict.value">
|
||||
{{dict.label}}
|
||||
</el-checkbox-button>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品名称" prop="orderProdName">
|
||||
<el-input
|
||||
v-model="queryParams.orderProdName"
|
||||
|
@ -119,6 +126,9 @@
|
|||
<template v-else-if="column.key === 'isEnd'">
|
||||
<boolean-tag :value="d.row.isEnd"/>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'orderStatus'">
|
||||
<dict-tag :value="d.row.orderStatus" :options="dict.type.order_status"/>
|
||||
</template>
|
||||
<template v-else>
|
||||
{{d.row[column.key]}}
|
||||
</template>
|
||||
|
@ -152,6 +162,7 @@ const defaultSort = {
|
|||
export default {
|
||||
name: "ProcessCheck",
|
||||
mixins: [$showColumns],
|
||||
dicts: ['order_status'],
|
||||
components: {BooleanTag, DeptTreeSelect},
|
||||
props: {
|
||||
// 标题
|
||||
|
@ -198,6 +209,7 @@ export default {
|
|||
pageSize: 10,
|
||||
orderByColumn: defaultSort.prop,
|
||||
isAsc: defaultSort.order,
|
||||
orderStatusList: [],
|
||||
},
|
||||
total: 0,
|
||||
row: null,
|
||||
|
@ -206,6 +218,7 @@ export default {
|
|||
columns: [
|
||||
{key: 'id', visible: true, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
|
||||
{key: 'orderNo', visible: true, label: '订单编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'orderStatus', visible: true, label: '订单状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'orderProdName', visible: true, label: '产品名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deptName', visible: true, label: '生产车间', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deptProcess', visible: true, label: '负责工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
|
|
|
@ -3,23 +3,44 @@
|
|||
|
||||
<template>
|
||||
<div>
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" :inline="true" label-width="4em">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" :inline="true" label-width="5em">
|
||||
<el-form-item label="归属部门" prop="deptId">
|
||||
<dept-tree-select v-model="queryParams.deptId" class="small-tree-select" @change="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="nickName">
|
||||
<el-input
|
||||
v-model="queryParams.nickName"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机" prop="phonenumber">
|
||||
<el-form-item label="登录账号" prop="userName">
|
||||
<el-input
|
||||
v-model="queryParams.phonenumber"
|
||||
placeholder="请输入手机号码"
|
||||
v-model="queryParams.userName"
|
||||
placeholder="请输入登录账号"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select
|
||||
v-model="queryParams.status"
|
||||
placeholder="用户状态"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in dict.type.sys_normal_disable"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
|
@ -160,17 +181,14 @@ export default {
|
|||
// 列信息
|
||||
columns: [
|
||||
{key: 'userId', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'userNo', visible: true, label: '工号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'nickName', visible: true, label: '姓名', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deptId', visible: true, label: '部门', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'phonenumber', visible: false, label: '手机号码', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'birthday', visible: true, label: '年龄', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'employDate', visible: true, label: '工龄', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'userName', visible: true, label: '登录账号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'status', visible: true, label: '账号状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'employStatus', visible: true, label: '在职情况', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'loginIp', visible: false, label: '最后登录IP', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'loginDate', visible: false, label: '最后登录时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'loginIp', visible: true, label: '最后登录IP', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'loginDate', visible: true, label: '最后登录时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
],
|
||||
}
|
||||
},
|
||||
|
|
|
@ -73,25 +73,6 @@ export const constantRoutes = [
|
|||
},
|
||||
]
|
||||
},
|
||||
/**
|
||||
* 新增页
|
||||
*/
|
||||
{
|
||||
path: '/add',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: 'order',
|
||||
component: () => import('@/views/bst/order/edit/edit.vue'),
|
||||
name: 'OrderAdd',
|
||||
meta: {
|
||||
title: '新增订单',
|
||||
noCache: false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
/**
|
||||
* 编辑页
|
||||
*/
|
||||
|
@ -101,11 +82,11 @@ export const constantRoutes = [
|
|||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: 'order/:id',
|
||||
path: 'order/:id?',
|
||||
component: () => import('@/views/bst/order/edit/edit.vue'),
|
||||
name: 'OrderEdit',
|
||||
meta: {
|
||||
title: '修改订单',
|
||||
title: '编辑订单',
|
||||
noCache: false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,10 @@ export const OrderStatus = {
|
|||
// 允许删除
|
||||
canDel() {
|
||||
return [this.PROPOSED];
|
||||
},
|
||||
// 允许上报
|
||||
canAddStore() {
|
||||
return [this.RELEASED];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -115,6 +115,14 @@
|
|||
v-has-permi="['bst:order:edit']"
|
||||
v-show="OrderStatus.canEdit().includes(scope.row.status)"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-check"
|
||||
@click="handleFinish(scope.row)"
|
||||
v-has-permi="['bst:order:finish']"
|
||||
v-show="OrderStatus.canFinished().includes(scope.row.status)"
|
||||
>完工</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
|
@ -139,7 +147,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { delOrder, listOrder } from '@/api/bst/order'
|
||||
import { delOrder, finishOrder, listOrder } from '@/api/bst/order'
|
||||
import FormCol from '@/components/FormCol/index.vue'
|
||||
import { $showColumns } from '@/utils/mixins'
|
||||
import { OrderStatus } from '@/utils/enums'
|
||||
|
@ -166,14 +174,14 @@ export default {
|
|||
{key: 'id', visible: true, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
|
||||
{key: 'orderNo', visible: true, label: '订单号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'status', visible: true, label: '订单状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'picture', visible: true, label: '主图', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'picture', visible: true, label: '主图', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'customer', visible: true, label: '客户', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deliveryDate', visible: true, label: '交货日期', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
|
||||
{key: 'num', visible: true, label: '数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: true, overflow: false, align: 'center', width: "160"},
|
||||
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: false, overflow: false, align: 'center', width: "160"},
|
||||
{key: 'createBy', visible: true, label: '创建人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||
],
|
||||
|
@ -256,12 +264,28 @@ export default {
|
|||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.$router.push("/add/order");
|
||||
this.$router.push("/edit/order");
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.$router.push(`/edit/order/${row.id}`)
|
||||
},
|
||||
// 完工
|
||||
handleFinish(row) {
|
||||
this.$confirm(`确定完成订单号为${row.orderNo}的订单吗?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.loading = true;
|
||||
finishOrder(row.id).then(res => {
|
||||
this.$modal.msgSuccess("操作成功")
|
||||
this.getList()
|
||||
}).catch( e => {
|
||||
this.loading = false;
|
||||
})
|
||||
})
|
||||
},
|
||||
handleView(row) {
|
||||
this.$router.push(`/view/order/${row.id}`)
|
||||
},
|
||||
|
|
|
@ -215,7 +215,7 @@ export default {
|
|||
columns: [
|
||||
{key: 'id', visible: true, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
|
||||
{key: 'orderNo', visible: true, label: '订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'picture', visible: true, label: '主图', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'picture', visible: true, label: '主图', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'name', visible: true, label: '名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'workType', visible: true, label: '加工商', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'materialNo', visible: true, label: '物料编码', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
|
@ -223,9 +223,9 @@ export default {
|
|||
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
|
||||
{key: 'isEnd', visible: true, label: '是否成品', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'num', visible: true, label: '数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: true, overflow: false, align: 'center', width: "160"},
|
||||
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: false, overflow: false, align: 'center', width: "160"},
|
||||
],
|
||||
// 排序方式
|
||||
orderSorts: ['ascending', 'descending', null],
|
||||
|
|
|
@ -9,6 +9,13 @@
|
|||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="orderStatus">
|
||||
<el-checkbox-group v-model="queryParams.orderStatusList" @change="handleQuery">
|
||||
<el-checkbox-button v-for="dict in dict.type.order_status" :key="dict.value" :label="dict.value">
|
||||
{{dict.label}}
|
||||
</el-checkbox-button>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品名称" prop="orderProdName">
|
||||
<el-input
|
||||
v-model="queryParams.orderProdName"
|
||||
|
@ -145,6 +152,9 @@
|
|||
<template v-else-if="column.key === 'orderNo'">
|
||||
<order-link :id="d.row.orderId" :name="d.row.orderNo"/>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'orderStatus'">
|
||||
<dict-tag :value="d.row.orderStatus" :options="dict.type.order_status"/>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'progress'">
|
||||
<el-progress :percentage="d.row.progress" :color="ProgressColors" :format="ProgressFormat"/>
|
||||
</template>
|
||||
|
@ -154,7 +164,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="!isCustomData">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
@ -162,6 +172,7 @@
|
|||
icon="el-icon-plus"
|
||||
@click="handleStore(scope.row)"
|
||||
v-has-permi="['bst:store:add']"
|
||||
v-show="OrderStatus.canAddStore().includes(scope.row.orderStatus)"
|
||||
>上报入库</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -194,6 +205,7 @@ import StoreEditDialog from '@/views/bst/store/components/StoreEditDialog.vue'
|
|||
import DeptTreeSelect from '@/components/Business/Dept/DeptTreeSelect.vue'
|
||||
import { ProgressColors, ProgressFormat } from '@/utils/constants'
|
||||
import OrderLink from '@/components/Business/Order/OrderLink.vue'
|
||||
import { OrderStatus } from '@/utils/enums'
|
||||
|
||||
// 默认排序字段
|
||||
const defaultSort = {
|
||||
|
@ -203,6 +215,7 @@ const defaultSort = {
|
|||
|
||||
export default {
|
||||
name: "ProdProcess",
|
||||
dicts: ['order_status'],
|
||||
mixins: [$showColumns],
|
||||
components: { OrderLink, DeptTreeSelect, StoreEditDialog, BooleanTag, FormCol},
|
||||
props: {
|
||||
|
@ -223,6 +236,7 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
OrderStatus,
|
||||
ProgressColors,
|
||||
row: {},
|
||||
showStoreEdit: false,
|
||||
|
@ -231,6 +245,7 @@ export default {
|
|||
columns: [
|
||||
{key: 'id', visible: true, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
|
||||
{key: 'orderNo', visible: true, label: '订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'orderStatus', visible: true, label: '订单状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'orderProdName', visible: true, label: '产品', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deptName', visible: true, label: '车间', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deptProcess', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
|
@ -241,9 +256,9 @@ export default {
|
|||
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'isEnd', visible: true, label: '是否最终', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'num', visible: true, label: '数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: true, overflow: false, align: 'center', width: "160"},
|
||||
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
|
||||
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: false, overflow: false, align: 'center', width: "160"},
|
||||
],
|
||||
// 排序方式
|
||||
orderSorts: ['ascending', 'descending', null],
|
||||
|
@ -281,7 +296,8 @@ export default {
|
|||
color: null,
|
||||
coverColor: null,
|
||||
remark: null,
|
||||
deleted: null
|
||||
deleted: null,
|
||||
orderStatusList: [OrderStatus.RELEASED, OrderStatus.FINISHED]
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
|
@ -311,6 +327,10 @@ export default {
|
|||
|
||||
if (this.isCustomData) {
|
||||
this.prodProcessList = this.customData;
|
||||
|
||||
this.columns.forEach(item => {
|
||||
item.sortable = false
|
||||
})
|
||||
} else {
|
||||
this.getList();
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<el-form :model="form" :rules="rules" ref="form" label-width="80px">
|
||||
<el-row>
|
||||
<form-col :span="span" label="工序" prop="processId">
|
||||
<process-input v-model="form.processId" :disabled="processId != null"/>
|
||||
<process-input v-model="form.processId" :disabled="processId != null" :query="processQuery"/>
|
||||
</form-col>
|
||||
<form-col :span="span" label="上报数量" prop="num">
|
||||
<el-input-number v-model="form.num" :min="0" controls-position="right" style="width: 100%;" placeholder="请输入上报数量"/>
|
||||
|
@ -24,6 +24,7 @@
|
|||
import FormCol from '@/components/FormCol/index.vue'
|
||||
import ProcessInput from '@/components/Business/Process/ProcessInput.vue'
|
||||
import { addStore, getStore, updateStore } from '@/api/bst/store'
|
||||
import { OrderStatus } from '@/utils/enums'
|
||||
|
||||
export default {
|
||||
name: 'StoreEditDialog',
|
||||
|
@ -65,6 +66,11 @@ export default {
|
|||
set(val) {
|
||||
this.$emit('update:show', val);
|
||||
}
|
||||
},
|
||||
processQuery() {
|
||||
return {
|
||||
orderStatusList: [OrderStatus.RELEASED]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -145,6 +145,9 @@
|
|||
<template v-else-if="column.key === 'orderNo'">
|
||||
<order-link :id="d.row.orderId" :name="d.row.orderNo"/>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'processIsEnd'">
|
||||
<boolean-tag :value="d.row.processIsEnd" />
|
||||
</template>
|
||||
<template v-else>
|
||||
{{d.row[column.key]}}
|
||||
</template>
|
||||
|
@ -160,7 +163,7 @@
|
|||
@click="handleStockIn(scope.row)"
|
||||
v-has-permi="['bst:store:stockIn']"
|
||||
v-show="StoreStatus.canStockIn().includes(scope.row.status)"
|
||||
>入库</el-button>
|
||||
>清点</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
|
@ -200,6 +203,7 @@ import { StoreStatus } from '@/utils/enums'
|
|||
import DateRangePicker from '@/components/DateRangePicker/index.vue'
|
||||
import { DatePickerOptions } from '@/utils/constants'
|
||||
import OrderLink from '@/components/Business/Order/OrderLink.vue'
|
||||
import BooleanTag from '@/components/BooleanTag/index.vue'
|
||||
|
||||
// 默认排序字段
|
||||
const defaultSort = {
|
||||
|
@ -216,7 +220,7 @@ export default {
|
|||
},
|
||||
mixins: [$showColumns],
|
||||
dicts: ['store_status'],
|
||||
components: { OrderLink, DateRangePicker, StoreEditDialog, DeptTreeSelect, FormCol},
|
||||
components: { BooleanTag, OrderLink, DateRangePicker, StoreEditDialog, DeptTreeSelect, FormCol},
|
||||
data() {
|
||||
return {
|
||||
StoreStatus,
|
||||
|
@ -229,14 +233,15 @@ export default {
|
|||
{key: 'prodName', visible: true, label: '产品名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'processDeptName', visible: true, label: '部门', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'deptProcess', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'processIsEnd', visible: true, label: '最终工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'num', visible: true, label: '上报数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '入库数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeNum', visible: true, label: '清点数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'createBy', visible: true, label: '上报人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'createTime', visible: true, label: '上报时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
|
||||
{key: 'storeBy', visible: true, label: '入库人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeTime', visible: true, label: '入库时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'storeBy', visible: true, label: '清点人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'storeTime', visible: true, label: '清点时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||
],
|
||||
// 排序方式
|
||||
orderSorts: ['ascending', 'descending', null],
|
||||
|
@ -290,19 +295,22 @@ export default {
|
|||
methods: {
|
||||
// 入库操作
|
||||
handleStockIn(row) {
|
||||
this.$prompt('入库数量', '提示', {
|
||||
this.$prompt('清点数量', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
inputPlaceholder: "请输入入库数量"
|
||||
inputPlaceholder: "请输入清点数量"
|
||||
}).then(({ value }) => {
|
||||
this.$confirm(`确定入库数量${value}吗?`, '提示', {
|
||||
this.$confirm(`确定清点数量${value}吗?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.loading = true;
|
||||
stockInStore({id: row.id, storeNum: value}).then(res => {
|
||||
this.$modal.msgSuccess("入库成功")
|
||||
this.$modal.msgSuccess("清点成功")
|
||||
this.getList()
|
||||
}).catch(e => {
|
||||
this.loading = false;
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
@ -19,14 +19,6 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="leaderName">
|
||||
<el-input
|
||||
v-model="queryParams.leaderName"
|
||||
placeholder="请输入负责人名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责工序" prop="process">
|
||||
<el-input
|
||||
v-model="queryParams.process"
|
||||
|
@ -79,7 +71,15 @@
|
|||
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="leaderName" label="负责人" align="center" />
|
||||
<el-table-column label="负责人" align="center" >
|
||||
<template slot-scope="d">
|
||||
<template v-if="!isEmpty(d.row.leaderList)">
|
||||
<el-tag type="primary" size="mini" v-for="item of d.row.leaderList">
|
||||
{{item.nickName | dv}}
|
||||
</el-tag>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="process" label="负责工序" align="center"/>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
|
@ -133,14 +133,14 @@
|
|||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</form-col>
|
||||
<form-col :span="span" label="负责人" prop="leaderId">
|
||||
<user-input v-model="form.leaderId" />
|
||||
<form-col :span="span" label="显示排序" prop="orderNum">
|
||||
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" style="width: 100%" placeholder="请输入显示排序" />
|
||||
</form-col>
|
||||
<form-col :span="span" label="负责工序" prop="process">
|
||||
<el-input v-model="form.process" placeholder="请输入负责工序" />
|
||||
</form-col>
|
||||
<form-col :span="span" label="显示排序" prop="orderNum">
|
||||
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" style="width: 100%" placeholder="请输入显示排序" />
|
||||
<form-col :span="span" label="负责人" prop="leaderId">
|
||||
<user-input v-model="form.leaderIds" multiple/>
|
||||
</form-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
@ -158,6 +158,7 @@ import Treeselect from '@riophae/vue-treeselect'
|
|||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import UserInput from '@/components/Business/User/UserInput.vue'
|
||||
import FormCol from '@/components/FormCol/index.vue'
|
||||
import { isEmpty } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: "Dept",
|
||||
|
@ -223,6 +224,7 @@ export default {
|
|||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
isEmpty,
|
||||
/** 查询部门列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
|
@ -257,7 +259,8 @@ export default {
|
|||
leader: undefined,
|
||||
phone: undefined,
|
||||
email: undefined,
|
||||
status: "0"
|
||||
status: "0",
|
||||
leaderIds: []
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
|
|
|
@ -99,10 +99,10 @@
|
|||
|
||||
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="角色编号" prop="roleId" width="120" />
|
||||
<el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" />
|
||||
<el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" />
|
||||
<el-table-column label="显示顺序" prop="roleSort" width="100" />
|
||||
<el-table-column label="角色编号" prop="roleId" width="120" align="center" />
|
||||
<el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" align="center" />
|
||||
<el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" align="center" />
|
||||
<el-table-column label="显示顺序" prop="roleSort" width="100" align="center"/>
|
||||
<el-table-column label="状态" align="center" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
|
@ -113,11 +113,8 @@
|
|||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip align="center"/>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
|
||||
<el-button
|
||||
|
@ -263,6 +260,7 @@ import {
|
|||
updateRole
|
||||
} from '@/api/system/role'
|
||||
import { roleMenuTreeselect, treeselect as menuTreeselect } from '@/api/system/menu'
|
||||
import { parseTime } from '../../../utils/ruoyi'
|
||||
|
||||
export default {
|
||||
name: "Role",
|
||||
|
@ -316,6 +314,10 @@ export default {
|
|||
{
|
||||
value: "5",
|
||||
label: "仅本人数据权限"
|
||||
},
|
||||
{
|
||||
value: "6",
|
||||
label: "负责部门数据权限"
|
||||
}
|
||||
],
|
||||
// 菜单列表
|
||||
|
@ -354,6 +356,7 @@ export default {
|
|||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
parseTime,
|
||||
/** 查询角色列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
|
|
|
@ -39,10 +39,10 @@
|
|||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码" prop="phonenumber">
|
||||
<el-form-item label="登录账号" prop="userName">
|
||||
<el-input
|
||||
v-model="queryParams.phonenumber"
|
||||
placeholder="请输入手机号码"
|
||||
v-model="queryParams.userName"
|
||||
placeholder="请输入登录账号"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@keyup.enter.native="handleQuery"
|
||||
|
@ -54,6 +54,7 @@
|
|||
placeholder="用户状态"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in dict.type.sys_normal_disable"
|
||||
|
@ -72,6 +73,7 @@
|
|||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="handleQuery"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
|
Loading…
Reference in New Issue
Block a user