修复错误

This commit is contained in:
zxx 2023-11-19 18:55:00 +08:00
parent 9caf57657d
commit e982748a05
11 changed files with 703 additions and 91 deletions

View File

@ -31,6 +31,9 @@
"mockjs": "^1.1.0",
"nprogress": "^0.2.0",
"quill": "^1.3.7",
"sass": "^1.69.5",
"sass-loader": "^13.3.2",
"scss": "^0.2.4",
"viser-vue": "^2.4.8",
"vue": "^2.6.11",
"vue-cropper": "^0.5.10",

View File

@ -1,13 +1,264 @@
<script>
export default {
name: "TableView"
name: "TableView",
props: {
title: {
type: String,
default: "表格"
},
// th
thCenter: {
type: Boolean,
default: true
},
options: {
type: Object,
default: () => {
return {
rows: [
{
row: [
{
name: "选项",
value: "value",
height: 1
}
]
},
{
row: [
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
}
]
},
{
row: [
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
}
]
},
{
row: [
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
}
]
},
{
row: [
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
},
{
name: "选项",
value: "value",
height: 1
}
]
},
{
row: [
{
name: "选项",
value: "value",
height: 10
}
]
},
]
}
}
},
dataId: {}
},
data() {
return {
};
},
computed: {
// row
thCenterStyle() {
return this.thCenter ? { textAlign: "center" } : {};
},
// rowheight
},
methods: {
rowClass(l){
return "row"+l
},
rowHeight(v) {
return { height: v.height * 40 + "px" };
}
},
}
</script>
<template>
$END$
<div class="container">
<h1> {{title}}</h1>
<div v-for="(item, index) in options" :key="index">
<div class="row" v-for="(value, key) in item" :key="key" :class="rowClass(value.row.length)">
<div class="cell" v-for="(v, k) in value.row" :key="k" :style="rowHeight(v)">
<span class="th" :style="thCenterStyle">
{{ v.name }}
</span>
<span class="td">
{{ v.value }}
</span>
</div>
</div>
</div>
</div>
</template>
<style scoped lang="less">
.container {
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
border: 1px solid #ccc;
border-top:0px;
margin:10px;
h1{
padding: 5px 10px;
text-align: center;
border-top: 1px solid #ccc;
}
.row {
display: flex;
flex-direction: row;
align-items: center;
width: 100%;
height: 100%;
.cell {
height:40px;
display: flex;
width: 100%;
span {
display: inline-block;
vertical-align: middle;
padding: 10px 10px 10px 10px;
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
}
.th {
background: #f5f7fa;
border-left:0px;
}
.td{
background: #ffffff;
border-right: 1px solid #ccc;
}
}
}
.row1{
.th {
width: 12.5%*1;
}
.td{
width: 12.5%*7;
}
}
.row2{
.th {
width: 12.5%*2;
}
.td{
width: 12.5%*6;
}
}
.row3{
.th {
width: 12.5%*3;
}
.td{
width:12.5%*5;
}
}
.row4{
.th {
width: 12.5%*4;
}
.td{
width: 12.5%*4;
}
}
.row5{
.th {
width: 12.5%*5;
}
.td{
width: 12.5%*3;
}
}
}
</style>

View File

@ -6,6 +6,7 @@ var zk = {
dialog: dialog,
init: (Vue) => {
Vue.component("zk-toolbar", () => import("../mk/components/toolbar/toolbar"));
Vue.component("zk-table-view", () => import("../zk/components/TableView.vue"));
},
request:request
}

View File

@ -220,6 +220,68 @@ export default {
{ field: 'stock', dataRule: { type: 'number' }, title: '入库数量', span: 12, itemRender: { name: '$input', props: { type: "number" } } },
{ field: 'in_type',title: '入库类型', span: 12, itemRender: { name: '$input' } },
{ field: 'in_time', dataRule: { type: 'timestamp' }, title: '入库时间', span: 12, itemRender: { name: '$input', props: { type: "date" } } },
{ field: 'bill_date', dataRule: { type: 'timestamp' }, title: '单据日期', span: 12, itemRender: { name: '$input', props: { type: "date" } } },
{
title: '入库人', span: 12,
field: 'in_user_name',
dataRule: {
fromField: "id",
saveField: "in_user_id"
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "string",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`,
onDataChanged: ({ data }) => {
console.log(data)
this.pageOptions.formOptions.data.warehouse_mobile = data.phone;
}
}
}
}
},
{
title: '业务员', span: 12,
field: 'salesman_name',
dataRule: {
fromField: "id",
saveField: "salesman_uid"
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "string",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`,
onDataChanged: ({ data }) => {
console.log(data)
this.pageOptions.formOptions.data.warehouse_mobile = data.phone;
}
}
}
}
},
{ field: 'check_time', dataRule: { type: 'timestamp' }, title: '验货时间', span: 12, itemRender: { name: '$input', props: { type: "date" } } },
{ field: 'delivery_no', title: '发货单号', span: 12, itemRender: { name: '$input' } },
{ field: 'contact', title: '联系人', span: 12, itemRender: { name: '$input' } },
{ field: 'phone', title: '联系电话', span: 12, itemRender: { name: '$input' } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: '$textarea' } },
// { field: 'stock', dataRule: { type: "number" }, title: '', span: 12, itemRender: { name: '$input', props: { type: 'number' } } },

View File

@ -86,12 +86,11 @@ export default {
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
{ key: "materials", mode: "like" },
],
//
searchFormItems: [ //
// { field: 'title', title: '', span: 5, itemRender: { name: '$input', props: { placeholder: '' } } },
{ field: 'materials', title: '料品', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //

View File

@ -78,7 +78,31 @@ export default {
{ field: 'stock', dataRule: { type: 'number' }, title: '入库数量', span: 12, itemRender: { name: '$input', props: { type: "number" } } },
{ field: 'in_type',title: '入库类型', span: 12, itemRender: { name: '$input' } },
{ field: 'in_time', dataRule: { type: 'timestamp' }, title: '入库时间', span: 12, itemRender: { name: '$input', props: { type: "date" } } },
{ field: 'bill_date', dataRule: { type: 'timestamp' }, title: '单据日期', span: 12, itemRender: { name: '$input', props: { type: "date" } } },
{
title: '入库人', span: 12,
field: 'in_user_name',
dataRule: {
fromField: "id",
saveField: "in_user_id"
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "string",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`,
onDataChanged: ({ data }) => {
console.log(data)
this.pageOptions.formOptions.data.warehouse_mobile = data.phone;
}
}
}
}
},
{
title: '业务员', span: 12,
field: 'salesman_name',
@ -111,7 +135,7 @@ export default {
{ field: 'contact', title: '联系人', span: 12, itemRender: { name: '$input' } },
{ field: 'phone', title: '联系电话', span: 12, itemRender: { name: '$input' } },
{ field: 'remark', title: '备注', span: 12, itemRender: { name: '$input' } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: '$textarea' } },
]
},
//

View File

@ -75,11 +75,15 @@ export default {
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
{ key: "materials", mode: "like" },
{ key: "warehouse", mode: "like" },
{ key: "warehouse_pos", mode: "like" }
],
//
searchFormItems: [ //
{ field: 'materials', title: '料品', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
{ field: 'warehouse', title: '仓库', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入仓库' } } },
{ field: 'warehouse_pos', title: '库位', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入库位' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //

View File

@ -1,12 +1,175 @@
<!-- 出入库记录 -->
<template>
<basic-page-edit :desc="desc" :dataId="getDataId()" :options="pageOptions"></basic-page-edit>
<div class="page-body">
<h2> {{ title }}</h2>
<!-- <vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"-->
<!-- :title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>-->
<!-- </vxe-form>-->
<div class="title">
单据日期{{ formOptions.data.create_time | formatTime }}
<b>单号{{ formOptions.data.code }}</b>
</div>
<div class="table-container">
<table class="table-layout">
<tbody>
<tr class="table-row-1">
<th class="table-cell">
料品
</th>
<td class="table-cell" colspan="11">
{{ product_detail.name }}
{{ product_detail.code }}
</td>
</tr>
<tr class="table-row-3" v-if="formOptions.data.out_time === 0">
<th class="table-cell">
入库数量
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.in_stock }}
</td>
<th class="table-cell">
单据日期
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.bill_date | formatDate }}
</td>
<th class="table-cell">
入库人员姓名
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.in_user_name }}
</td>
</tr>
<tr class="table-row-3" v-if="formOptions.data.out_time === 0">
<th class="table-cell">
剩余库存数量
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.stock }}
</td>
<th class="table-cell">
入库类型
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.in_type }}
</td>
<th class="table-cell">
入库时间
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.in_time | formatDate }}
</td>
</tr>
<tr class="table-row-3" v-if="formOptions.data.in_time === 0">
<th class="table-cell">
出库数量
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.out_stock }}
</td>
<th class="table-cell">
单据日期
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.bill_date | formatDate }}
</td>
<th class="table-cell">
出库人员姓名
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.out_user_name }}
</td>
</tr>
<tr class="table-row-3" v-if="formOptions.data.in_time === 0">
<th class="table-cell">
剩余库存数量
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.stock }}
</td>
<th class="table-cell">
出库类型
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.out_type }}
</td>
<th class="table-cell">
出库时间
</th>
<td class="table-cell" colspan="3">
{{ formOptions.data.out_time }}
</td>
</tr>
<!-- <tr class="table-row-3">-->
<!-- <th class="table-cell">-->
<!-- 业务类型-->
<!-- </th>-->
<!-- <td class="table-cell" colspan="3">-->
<!-- {{formOptions.data.business_type}}-->
<!-- </td>-->
<!-- <th class="table-cell">-->
<!-- 业务单号-->
<!-- </th>-->
<!-- <td class="table-cell" colspan="3">-->
<!-- {{formOptions.data.business_no}}-->
<!-- </td>-->
<!-- <th class="table-cell">-->
<!-- 业务员-->
<!-- </th>-->
<!-- <td class="table-cell" colspan="3">-->
<!-- {{formOptions.data.salesman_name}}-->
<!-- </td>-->
<!-- </tr>-->
<tr class="table-row-4">
<th class="table-cell">
验货时间
</th>
<td class="table-cell" colspan="2">
{{ formOptions.data.check_time | formatTime }}
</td>
<th class="table-cell">
发货单号
</th>
<td class="table-cell" colspan="2">
{{ formOptions.data.delivery_no }}
</td>
<th class="table-cell">
联系人
</th>
<td class="table-cell" colspan="2">
{{ formOptions.data.contact }}
</td>
<th class="table-cell">
联系电话
</th>
<td class="table-cell" colspan="2">
{{ formOptions.data.phone }}
</td>
</tr>
<tr class="table-row-1" style="height: 200px;">
<th class="table-cell">
备注
</th>
<td class="table-cell" colspan="11">
{{ formOptions.data.remark }}
</td>
</tr>
</tbody>
</table>
</div>
<!-- <zk-table-view />-->
</div>
</template>
<script>
import BASE_URL from '@/services/mes/api.js';
import XEUtils from 'xe-utils' // xe-utils
export default {
@ -17,21 +180,17 @@ export default {
type: String,
default: "edit"
},
dataId: {
}
dataId: {},
},
data() {
return {
pageOptions: {}
};
return this.optionsInit()
},
computed: {
desc() {
return this.$t('editPageDesc')
}
},
},
@ -45,7 +204,6 @@ export default {
methods: {
optionsInit() {
//
var pageData = {
@ -84,6 +242,9 @@ export default {
keyName: 'id',
//
isEdit: false,
title:"",
product_detail:{},
//
formOptions: {
data: {
@ -109,15 +270,15 @@ export default {
rules: {
// =============================== Start ===============================
code: [
{ required: true, message: '请输入编码' }
],
title: [
{ required: true, message: '请输入库存名称' }
],
name: [
{ required: true, message: '请输入库存英文名称' }
],
// code: [
// {required: true, message: ''}
// ],
// title: [
// {required: true, message: ''}
// ],
// name: [
// {required: true, message: ''}
// ],
// =============================== End ===============================
},
@ -143,15 +304,15 @@ export default {
{field: 'business_type', title: '业务类型', span: 12, itemRender: {name: '$input'}},
{field: 'business_no', title: '业务单号', span: 12, itemRender: {name: '$input'}},
{field: 'out_type', title: '出库类型', span: 12, itemRender: {name: '$input'}},
{ field: 'department_id', title: '部门ID', span: 12, itemRender: { name: '$input' } },
// { field: 'department_id', title: 'ID', span: 12, itemRender: { name: '$input' } },
{field: 'salesman_uid', title: '业务员ID', span: 12, itemRender: {name: '$input'}},
{field: 'salesman_name', title: '业务员姓名', span: 12, itemRender: {name: '$input'}},
{ field: 'handler_uid', title: '经手人ID', span: 12, itemRender: { name: '$input' } },
{ field: 'handler_name', title: '经手人姓名', span: 12, itemRender: { name: '$input' } },
{ field: 'warehouse_keeper_uid', title: '仓管员ID', span: 12, itemRender: { name: '$input' } },
{ field: 'warehouse_keeper_name', title: '仓管员姓名', span: 12, itemRender: { name: '$input' } },
{ field: 'check_user_uid', title: '验货人id', span: 12, itemRender: { name: '$input' } },
{ field: 'check_user_name', title: '验货人姓名', span: 12, itemRender: { name: '$input' } },
// { field: 'handler_uid', title: 'ID', span: 12, itemRender: { name: '$input' } },
// { field: 'handler_name', title: '', span: 12, itemRender: { name: '$input' } },
// { field: 'warehouse_keeper_uid', title: 'ID', span: 12, itemRender: { name: '$input' } },
// { field: 'warehouse_keeper_name', title: '', span: 12, itemRender: { name: '$input' } },
// { field: 'check_user_uid', title: 'id', span: 12, itemRender: { name: '$input' } },
// { field: 'check_user_name', title: '', span: 12, itemRender: { name: '$input' } },
{field: 'check_time', title: '验货时间', span: 12, itemRender: {name: '$input'}, props: {type: "date"}},
{field: 'delivery_no', title: '发货单号', span: 12, itemRender: {name: '$input'}},
{field: 'contact', title: '联系人', span: 12, itemRender: {name: '$input'}},
@ -164,20 +325,20 @@ export default {
]
},
//
addModeItems: [
],
addModeItems: [],
};
pageData.actions.get = pageData.actions.ProductStockLogDetail;
pageData.actions.create = pageData.actions.MesStockCreate;
pageData.actions.update = pageData.actions.MesStockUpdate;
pageData.actions.create = pageData.actions.ProductStockLogCreate;
pageData.actions.update = pageData.actions.ProductStockLogUpdate;
//
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
this.pageOptions = pageData;
return pageData;
},
dataInit() {
@ -187,7 +348,7 @@ export default {
if (dataId) {
const json = `{"id":${dataId}}`;
this.$mk.post({
url: this.pageOptions.actions.get,
url: this.actions.get,
loading: "加载中...",
data: json,
config: {
@ -197,31 +358,26 @@ export default {
}
}).then(a => {
let detailDataFieldName = this.pageOptions.detailDataFieldName;
let detailDataFieldName = this.detailDataFieldName;
if (a.data[detailDataFieldName].create_time) {
a.data[detailDataFieldName].create_time = new Date(a.data[detailDataFieldName].create_time * 1000);
}
if (a.data[detailDataFieldName].update_time) {
a.data[detailDataFieldName].update_time = new Date(a.data[detailDataFieldName].update_time * 1000);
}
this.pageOptions.formOptions.data = a.data[detailDataFieldName];
this.formOptions.data = a.data[detailDataFieldName];
if (this.formOptions.data.out_time === 0) {
this.title = "入库单据"
} else {
this.title = "出库单据"
}
this.product_detail = this.formOptions.data.product_detail
this.$forceUpdate()
}).catch((a) => {
this.$mk.error(a.data.msg);
});
this.pageOptions.isEdit = true;
this.isEdit = true;
this.$forceUpdate()
} else {
// id
this.addModeItems.forEach(item => {
this.pageOptions.formOptions.items.push(item);
})
}
},
@ -236,12 +392,92 @@ export default {
}
return dataId;
},
},
filters: {
formatDate(cellValue) {
if (!cellValue) {
return '';
}
if (typeof (cellValue) == "number") {
cellValue = new Date(cellValue * 1000);
}
return XEUtils.toDateString(cellValue, 'yyyy-MM-dd')
},
formatTime(cellValue) {
if (!cellValue) {
return '';
}
if (typeof (cellValue) == "number") {
cellValue = new Date(cellValue * 1000);
}
return XEUtils.toDateString(cellValue, 'yyyy-MM-dd HH:mm:ss')
},
},
//
watch: {
}
watch: {}
};
</script>
<style lang="less" scoped>
.page-body {
padding: 30px;
}
.page-body h2 {
margin-bottom: 20px;
font-size: 40px;
font-weight: bold;
text-align: center;
}
.title {
margin-top: 20px;
margin-bottom: 20px;
margin-left: 20px;
font-size: 20px;
font-weight: bold;
b {
margin-left: 20px;
}
}
.table-container {
margin-top: 20px;
border: 2px solid #ebeef5;
border-radius: 4px;
background-color: #fff;
padding: 20px;
}
.table-layout {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
}
.table-layout td {
padding: 10px;
border: 1px solid #ebeef5;
}
.table-layout th {
padding: 10px;
border: 1px solid #ebeef5;
background-color: #f5f7fa;
text-align: center;
}
.table-layout .table-cell {
padding: 10px;
width: 12.5%;
min-height: 40px;
border: 1px solid #CCCCCC;
}
</style>

View File

@ -77,6 +77,31 @@ export default {
{ field: 'stock', dataRule: { type: 'number' }, title: '出库数量', span: 12, itemRender: { name: '$input' , props: { type: "number" }} },
{ field: 'out_type',title: '出库类型', span: 12, itemRender: { name: '$input' } },
{ field: 'out_time', dataRule: { type: 'timestamp' }, title: '出库时间', span: 12, itemRender: { name: '$input' , props: { type: "date" }} },
{ field: 'bill_date', dataRule: { type: 'timestamp' }, title: '单据日期', span: 12, itemRender: { name: '$input', props: { type: "date" } } },
{
title: '出库人', span: 12,
field: 'out_user_name',
dataRule: {
fromField: "id",
saveField: "out_user_id"
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "string",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`,
onDataChanged: ({ data }) => {
console.log(data)
this.pageOptions.formOptions.data.warehouse_mobile = data.phone;
}
}
}
}
},
{
title: '业务员', span: 12,
@ -110,7 +135,7 @@ export default {
{ field: 'contact', title: '联系人', span: 12, itemRender: { name: '$input' } },
{ field: 'phone', title: '联系电话', span: 12, itemRender: { name: '$input' } },
{ field: 'remark', title: '备注', span: 12, itemRender: { name: '$input' } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: '$textarea' } },
]
},
//

View File

@ -75,11 +75,15 @@ export default {
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
{ key: "materials", mode: "like" },
{ key: "warehouse", mode: "like" },
{ key: "warehouse_pos", mode: "like" }
],
//
searchFormItems: [ //
{ field: 'materials', title: '料品', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
{ field: 'warehouse', title: '仓库', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入仓库' } } },
{ field: 'warehouse_pos', title: '库位', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入库位' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //

View File

@ -84,12 +84,15 @@ export default {
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
{ key: "materials", mode: "like" },
{ key: "warehouse", mode: "like" },
{ key: "warehouse_pos", mode: "like" }
],
//
searchFormItems: [ //
{ field: 'title', title: '料品', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
{ field: 'materials', title: '料品', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
{ field: 'warehouse', title: '仓库', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入仓库' } } },
{ field: 'warehouse_pos', title: '库位', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入库位' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //