This commit is contained in:
parent
5f661f06f5
commit
b0a7788e11
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
</div>
|
||||
</span>
|
||||
<span>
|
||||
<span v-if="isReadonly !== true">
|
||||
<a v-if="value" class="downloadfile" :href="value" target="_blank">下载图片</a>
|
||||
<a v-if="value" class="delfile" @click="delFile">重置图片</a>
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -2,9 +2,15 @@
|
|||
<div class="edit-down-table">
|
||||
<vxe-pulldown class="edit-down-pulldown" ref="xDown" transfer>
|
||||
<template>
|
||||
<vxe-input class="edit-down-input" ref="inputx" :type="enalbedPopup ? 'search' : 'input'" v-model="textboxValue"
|
||||
:readonly="readonly" @keyup="keyupEvent" :placeholder="placeholder" @click="clickEvent"
|
||||
@suffix-click="suffixClick" @search-click="popupEvent"></vxe-input>
|
||||
<vxe-input class="edit-down-input" ref="inputx" :type="enalbedPopup ? 'search' : 'input'" v-model="textboxValue"
|
||||
:readonly="readonly" @keyup="keyupEvent" @keydown="keydownEvent" :placeholder="placeholder" @click="clickEvent"
|
||||
@suffix-click="suffixClick" @search-click="popupEvent"></vxe-input>
|
||||
|
||||
<div style="margin-top: 10px;" v-if="buttons && buttons.length">
|
||||
<a-icon v-for="(btn, index) in buttons" :key="index" @click="buttonClick(btn)" :type="btn.type"
|
||||
:style="{ fontSize: '26px', color: '#08c' }"></a-icon>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<template #dropdown>
|
||||
|
||||
|
|
@ -53,6 +59,7 @@ export default {
|
|||
getList: `${BASE_URL}/api/web/listdata` // 获取列表数据
|
||||
},
|
||||
actionParams:null,
|
||||
buttons: [],
|
||||
modalVisible: false, // 弹出框显示
|
||||
lastKey: '', // 上次输入的值
|
||||
modelName: '', // 模块名称
|
||||
|
|
@ -86,6 +93,17 @@ export default {
|
|||
created() { // 创建
|
||||
this.load() // 加载
|
||||
this.heightInit(); // 高度初始化
|
||||
|
||||
const { params } = this
|
||||
if (params.autoFocus) {
|
||||
this.$nextTick(() => {
|
||||
|
||||
setTimeout(()=>{
|
||||
this.$refs.inputx.focus();
|
||||
},100)
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
},
|
||||
|
|
@ -215,6 +233,7 @@ export default {
|
|||
|
||||
return this.$mk.getPagedData({
|
||||
url: this.actions.getList,
|
||||
useBigInt:true,
|
||||
data: params
|
||||
});
|
||||
},
|
||||
|
|
@ -224,6 +243,38 @@ export default {
|
|||
}
|
||||
this.$refs.xDown.showPanel() // 显示面板
|
||||
},
|
||||
|
||||
handleScanInput(event) {
|
||||
const { params } = this
|
||||
const input = event.target;
|
||||
const inputValue = input.value;
|
||||
this.scanEntry = input.value;
|
||||
|
||||
if (event.key === 'Enter') {
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
input.value = '';
|
||||
|
||||
this.scanEntry = '';
|
||||
|
||||
}, 10);
|
||||
if(params.scan){
|
||||
console.log(inputValue)
|
||||
params.scan({value:inputValue,input:input})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
keydownEvent(e) {
|
||||
|
||||
const { params } = this
|
||||
if(params.scan){
|
||||
this.handleScanInput(e.$event);
|
||||
}
|
||||
},
|
||||
keyupEvent(e) {
|
||||
const { params } = this
|
||||
if (this.readonly) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div>
|
||||
<input autocomplete="off" class="readonlytext" type="text" :value="value" />
|
||||
<input autocomplete="off" class="readonlytext" type="text" :value="valueShow" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
@ -15,18 +15,42 @@ export default {
|
|||
},
|
||||
props: {
|
||||
value: {
|
||||
type: String
|
||||
}
|
||||
type: [String,Number]
|
||||
},
|
||||
params: Object,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
valueShow:''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
value(){
|
||||
|
||||
const { params } = this
|
||||
if(params && params.dataType == "number"){
|
||||
this.valueShow = parseFloat(this.value || 0).toFixed(2);
|
||||
}else if(params && params.dataType == "ref"){
|
||||
this.valueShow = this.value && this.value[1] ? this.value[1] : "";
|
||||
}else if(params && params.dataType == "enum"){
|
||||
this.valueShow = '';
|
||||
|
||||
params.options.forEach(item=>{
|
||||
if(this.value == item.value){
|
||||
this.valueShow = item.label;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
else{
|
||||
this.valueShow = this.value ||"";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -54,9 +54,53 @@ export default {
|
|||
|
||||
},
|
||||
|
||||
get: function ({ url, loading, config, useBigInt }) { // post请求
|
||||
|
||||
if (useBigInt) {
|
||||
config = config || {};
|
||||
config.headers = {
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
}
|
||||
return new Promise((resolve, reject) => { // 返回一个Promise
|
||||
|
||||
if (loading) { // 如果需要加载
|
||||
modal.loading(loading); // 显示加载
|
||||
}
|
||||
request(url, 'get', {}, config).then(response => { // 发送请求
|
||||
if (!response) { // 如果没有返回
|
||||
reject && reject(response); // 返回错误
|
||||
return; // 返回
|
||||
}
|
||||
var result = response.data; // 获取数据
|
||||
if (!result) { // 如果没有数据
|
||||
reject && reject(response); // 返回错误
|
||||
return; // 返回
|
||||
}
|
||||
if (loading) { // 如果需要加载
|
||||
modal.hideLoading(); // 隐藏加载
|
||||
}
|
||||
resolve(result); // 返回成功
|
||||
}).catch((error) => { // 如果出错
|
||||
if (loading) { // 如果需要加载
|
||||
modal.hideLoading(); // 隐藏加载
|
||||
}
|
||||
modal.error(error.toString()); // 显示错误
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
// 获取分页数据
|
||||
getPagedData: function ({ url, method = 'post', data, callback, config }) { // 获取分页数据 默认post请求
|
||||
getPagedData: function ({ url, method = 'post', data, callback, config,useBigInt }) { // 获取分页数据 默认post请求
|
||||
|
||||
if (useBigInt) {
|
||||
config = config || {};
|
||||
config.headers = {
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
data = JSONbig.stringify(data);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => { // 返回一个Promise
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,644 @@
|
|||
<template>
|
||||
<div class="page-body">
|
||||
<vxe-pulldown ref="pulldownRef" transfer>
|
||||
<template #default>
|
||||
<vxe-input ref="inputx" style="width:400px" v-model="searchName" suffix-icon="vxe-icon-table"
|
||||
placeholder="搜索员工,随车联,工序等信息" @keydown="keydownEvent" @suffix-click="suffixClick"></vxe-input>
|
||||
<a-icon type="scan" :style="{ fontSize: '22px', color: '#08c', marginLeft: '10px' }" @click="inputFocus" />
|
||||
</template>
|
||||
<template #dropdown>
|
||||
<div class="search-dropdown">
|
||||
<div class="search-dropdown-column">
|
||||
<h3>随车联</h3>
|
||||
<vxe-grid border auto-resize height="400" :row-config="{ isHover: true }" :loading="loading"
|
||||
:data="tableDataOrders" :columns="tableColumnOrders" @cell-click="cellClickEventOrders">
|
||||
</vxe-grid>
|
||||
</div>
|
||||
<div class="search-dropdown-column">
|
||||
<h3>员工</h3>
|
||||
<vxe-grid border auto-resize height="400" :row-config="{ isHover: true }" :loading="loading"
|
||||
:data="tableDataStaff" :columns="tableColumn" @cell-click="cellClickEventStaff">
|
||||
</vxe-grid>
|
||||
</div>
|
||||
<div class="search-dropdown-column">
|
||||
<h3>工序</h3>
|
||||
<vxe-grid border auto-resize height="400" :row-config="{ isHover: true }" :loading="loading"
|
||||
:data="tableDataProcesses" :columns="tableColumn" @cell-click="cellClickEventProcesses">
|
||||
</vxe-grid>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</vxe-pulldown>
|
||||
|
||||
<div class="container">
|
||||
<div class="left">
|
||||
<div class="card">
|
||||
<h4>随车联(工序流转卡)信息</h4>
|
||||
<vxe-form :data="formOptions4.data" ref="xForm" :title-width="formOptions4.titleWidth"
|
||||
:title-align="formOptions4.titleAlign" :rules="formOptions4.rules" :items="formOptions4.items" titleColon>
|
||||
</vxe-form>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h4>报工信息</h4>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
<div class="right">
|
||||
|
||||
<div class="card">
|
||||
<h4>员工信息</h4>
|
||||
<vxe-form :data="formOptions2.data" ref="xForm" :title-width="formOptions2.titleWidth"
|
||||
:title-align="formOptions2.titleAlign" :rules="formOptions2.rules" :items="formOptions2.items" titleColon>
|
||||
</vxe-form>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h4>工序信息</h4>
|
||||
|
||||
<vxe-form :data="formOptions3.data" ref="xForm" :title-width="formOptions3.titleWidth"
|
||||
:title-align="formOptions3.titleAlign" :rules="formOptions3.rules" :items="formOptions3.items" titleColon>
|
||||
</vxe-form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a-button type="primary">确定报工</a-button>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BASE_URL from '@/services/mes/api.js';
|
||||
const settings = require('../../basic/settings.js');
|
||||
|
||||
import JSONbig from 'json-bigint'
|
||||
export default {
|
||||
|
||||
name: '',
|
||||
components: {},
|
||||
props: {
|
||||
pageMode: {
|
||||
type: String,
|
||||
default: "edit"
|
||||
},
|
||||
dataId: {
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
data() {
|
||||
|
||||
|
||||
let getEnumActionParams = (enum_id) => {
|
||||
return {
|
||||
"ptyid": 0,
|
||||
"company_id": 1,
|
||||
"enum_id": this.$mk.toBigInt(enum_id),
|
||||
"search_rules": [
|
||||
],
|
||||
"end_time": 0,
|
||||
"company_token": process.env.VUE_APP_COMPANYTOKEN,
|
||||
"store_id": 0,
|
||||
"order_bys": [
|
||||
],
|
||||
"limit": 0,
|
||||
"project_token": process.env.VUE_APP_APPTOKEN,
|
||||
"beid": 1,
|
||||
"page": 1,
|
||||
"start_time": 0
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
var pageData = {
|
||||
|
||||
actions: {
|
||||
},
|
||||
|
||||
keyName: 'id',
|
||||
// 是否编辑模式
|
||||
isEdit: false,
|
||||
|
||||
|
||||
formOptions4: {
|
||||
data: {
|
||||
},
|
||||
// 标题宽度
|
||||
titleWidth: 100,
|
||||
// 标题对齐方式
|
||||
titleAlign: 'right',
|
||||
// 表单校验规则
|
||||
rules: {
|
||||
},
|
||||
// 表单项
|
||||
items: [
|
||||
|
||||
{
|
||||
title: '左侧',
|
||||
span: 9,
|
||||
children: [
|
||||
{ field: '布产单信息', title: '布产单信息', span: 24, titleColon: false, className: 'formtitle' },
|
||||
{ field: 'production_number', title: '布产单号', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: '布产部门', title: '布产部门', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: '布产类型', title: '布产类型', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: '是否补单', title: '是否补单', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: '补单原因', title: '补单原因', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '中侧',
|
||||
span: 9,
|
||||
children: [
|
||||
{ field: '料品信息', title: '料品信息', span: 24, titleColon: false, className: 'formtitle' },
|
||||
{ field: 'materials_code', title: '料品编号', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'materials_name', title: '料品名称', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '右侧',
|
||||
span: 6,
|
||||
children: [
|
||||
{
|
||||
field: 'image', span: 24, itemRender: {
|
||||
name: 'MkFormCropper', props: {
|
||||
isReadonly: true
|
||||
}
|
||||
}
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '下侧',
|
||||
span: 24,
|
||||
children: [
|
||||
{ field: '料品信息', title: '随车联信息', span: 24, titleColon: false, className: 'formtitle' },
|
||||
{ field: 'batch_no', title: '随车联号', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'number', title: '数量', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'is_pick', title: '是否领料', span: 6, itemRender: { name: '$MkFormInputShow', props: { dataType: 'yesorno' } } },
|
||||
{ field: 'start_time', title: '开始时间', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'work_type', title: '计工方式', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'car_code', title: '车号', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'pick_time', title: '领料时间', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'status', title: '状态', span: 6, itemRender: { name: '$MkFormInputShow' } },
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
formOptions2: {
|
||||
data: {
|
||||
},
|
||||
// 标题宽度
|
||||
titleWidth: 100,
|
||||
// 标题对齐方式
|
||||
titleAlign: 'right',
|
||||
// 表单校验规则
|
||||
rules: {
|
||||
},
|
||||
// 表单项
|
||||
items: [
|
||||
{
|
||||
span: 6,
|
||||
children: [
|
||||
{
|
||||
field: 'avatar', span: 24, itemRender: {
|
||||
name: 'MkFormCropper', props: {
|
||||
isReadonly: true
|
||||
}
|
||||
}
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
span: 18,
|
||||
children: [
|
||||
|
||||
{ field: 'name', title: '姓名', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'code', title: '工号', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'phone', title: '电话', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'processName', title: '工序', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
],
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
formOptions3: {
|
||||
data: {
|
||||
},
|
||||
// 标题宽度
|
||||
titleWidth: 100,
|
||||
// 标题对齐方式
|
||||
titleAlign: 'right',
|
||||
// 表单校验规则
|
||||
rules: {
|
||||
},
|
||||
// 表单项
|
||||
items: [
|
||||
{ field: 'name', title: '工序名称', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
{ field: 'code', title: '工序编号', span: 24, itemRender: { name: '$MkFormInputShow' } },
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
formOptions: {
|
||||
data: {
|
||||
},
|
||||
// 标题宽度
|
||||
titleWidth: 110,
|
||||
// 标题对齐方式
|
||||
titleAlign: 'right',
|
||||
// 表单校验规则
|
||||
rules: {
|
||||
},
|
||||
// 表单项
|
||||
items: [
|
||||
{ field: '可报工数量', title: '可报工数量', span: 8, itemRender: { name: '$input', props: { type: 'number' } } },
|
||||
{ field: '随车剩下张数', title: '随车剩下张数', span: 8, itemRender: { name: '$input', props: { type: 'number' } } },
|
||||
|
||||
{
|
||||
title: '查坯方式', span: 8,
|
||||
field: '查坯方式',
|
||||
itemRender: {
|
||||
name: 'MkFormDataSelector', props: {
|
||||
params: {
|
||||
dataType: "string",
|
||||
valueField: "name",
|
||||
textField: "name",
|
||||
listdataFieldName: 'enum_value',
|
||||
actionParams: getEnumActionParams(settings.enum_ids.查坯方式),
|
||||
dataUrl: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/getEnum`
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '花面', span: 8,
|
||||
field: '花面',
|
||||
itemRender: {
|
||||
name: 'MkFormDataSelector', props: {
|
||||
params: {
|
||||
dataType: "string",
|
||||
valueField: "name",
|
||||
textField: "name",
|
||||
listdataFieldName: 'enum_value',
|
||||
actionParams: getEnumActionParams(settings.enum_ids.花面),
|
||||
dataUrl: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/getEnum`
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{ field: '合格数量', title: '合格数量', span: 8, itemRender: { name: '$input', props: { type: 'number' } } },
|
||||
{ field: '报损数量', title: '报损数量', span: 8, itemRender: { name: '$input', props: { type: 'number' } } },
|
||||
{
|
||||
title: '土质', span: 8,
|
||||
field: '土质',
|
||||
itemRender: {
|
||||
name: 'MkFormDataSelector', props: {
|
||||
params: {
|
||||
dataType: "string",
|
||||
valueField: "name",
|
||||
textField: "name",
|
||||
listdataFieldName: 'enum_value',
|
||||
actionParams: getEnumActionParams(settings.enum_ids.土质),
|
||||
dataUrl: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/getEnum`
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{ field: '土质日期', title: '土质日期', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
searchName: '',
|
||||
lastTriggerTime: null,
|
||||
lastScanTime: null,
|
||||
|
||||
loading: false,
|
||||
tableColumnOrders: [
|
||||
{ field: 'production_number', title: '单号' },
|
||||
{ field: 'materials_name', title: '料品名' },
|
||||
],
|
||||
tableColumn: [
|
||||
{ field: 'name', title: '名称' },
|
||||
|
||||
{ field: 'code', title: '编号' }
|
||||
],
|
||||
tableDataStaff: [],
|
||||
tableDataProcesses: [],
|
||||
tableDataOrders: []
|
||||
|
||||
};
|
||||
|
||||
|
||||
// 合并表单数据及配置
|
||||
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||
|
||||
return pageData;
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
||||
},
|
||||
|
||||
|
||||
created() {
|
||||
|
||||
setTimeout(() => {
|
||||
this.$refs.inputx.focus();
|
||||
|
||||
}, 200)
|
||||
|
||||
//149433255169363968
|
||||
//this.loadStaff({id:"149433255169363968"})
|
||||
},
|
||||
// 函数
|
||||
methods: {
|
||||
|
||||
inputFocus() {
|
||||
this.$refs.inputx.focus();
|
||||
},
|
||||
|
||||
doLoadData() {
|
||||
|
||||
const now = Date.now();
|
||||
if (this.lastTriggerTime) {
|
||||
const elapsedTime = now - this.lastTriggerTime;
|
||||
if (elapsedTime < 1000) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const $pulldown = this.$refs.pulldownRef
|
||||
if ($pulldown) {
|
||||
$pulldown.showPanel()
|
||||
}
|
||||
this.lastTriggerTime = now;
|
||||
this.loadData({ key: this.searchName })
|
||||
|
||||
},
|
||||
|
||||
loadData({ key }) {
|
||||
|
||||
this.loading = true
|
||||
this.$mk.post({
|
||||
url: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/search`,
|
||||
loading: "搜索中...",
|
||||
data: {
|
||||
"keyword": key,
|
||||
"ptyid": 0,
|
||||
"company_id": 1,
|
||||
"search_rules": [
|
||||
],
|
||||
"end_time": 0,
|
||||
"company_token": process.env.VUE_APP_COMPANYTOKEN,
|
||||
"store_id": 0,
|
||||
"order_bys": [
|
||||
],
|
||||
"limit": 0,
|
||||
"project_token": process.env.VUE_APP_APPTOKEN,
|
||||
"beid": 1,
|
||||
"page": 1,
|
||||
"start_time": 0
|
||||
},
|
||||
useBigInt: true,
|
||||
}).then(a => {
|
||||
this.loading = false
|
||||
this.tableDataStaff = a.data.mes_staff || [];
|
||||
this.tableDataProcesses = a.data.mes_processes || [];
|
||||
this.tableDataOrders = a.data.production_order_array || [];
|
||||
|
||||
}).catch((a) => {
|
||||
this.loading = false
|
||||
this.$mk.error(a.data.msg);
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
keydownEvent(e) {
|
||||
let event = e.$event;
|
||||
const input = event.target;
|
||||
const inputValue = input.value;
|
||||
this.scanEntry = input.value;
|
||||
const now = Date.now();
|
||||
if (event.key === 'Enter') {
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
input.value = '';
|
||||
|
||||
this.scanEntry = '';
|
||||
|
||||
}, 10);
|
||||
|
||||
if (inputValue && inputValue.indexOf('{') == 0) {
|
||||
let v = JSONbig.parse(inputValue);
|
||||
this.lastScanTime = now;
|
||||
if (v.types == 'staff') {
|
||||
this.loadStaff({id:v.id});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
|
||||
if (this.lastScanTime) {
|
||||
// 如果上次扫码时间在200毫秒以内,则什么也不做
|
||||
if (now - this.lastScanTime < 200) {
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.doLoadData();
|
||||
|
||||
|
||||
}, 100);
|
||||
|
||||
},
|
||||
|
||||
loadStaff({ id }) {
|
||||
this.loading = true
|
||||
this.$mk.get({
|
||||
url: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/getIdentity/${process.env.VUE_APP_BEID}/${process.env.VUE_APP_PTYID}/${process.env.VUE_APP_COMPANY_ID}/0/${process.env.VUE_APP_APPTOKEN}/${process.env.VUE_APP_COMPANYTOKEN}/${id}`,
|
||||
|
||||
useBigInt: true,
|
||||
}).then(a => {
|
||||
this.selectStaff({data:a.data.mes_staff})
|
||||
});
|
||||
},
|
||||
|
||||
selectStaff({data}){
|
||||
let data2 = Object.assign({}, data);
|
||||
if (data2.mes_processes) {
|
||||
data2.processName = data2.mes_processes.name;
|
||||
}
|
||||
|
||||
|
||||
this.formOptions2.data = data2
|
||||
},
|
||||
|
||||
suffixClick() {
|
||||
const $pulldown = this.$refs.pulldownRef
|
||||
if ($pulldown) {
|
||||
$pulldown.togglePanel()
|
||||
}
|
||||
},
|
||||
cellClickEventProcesses({ row }) {
|
||||
let data = Object.assign({}, row);
|
||||
this.formOptions3.data = data
|
||||
},
|
||||
cellClickEventOrders({ row }) {
|
||||
console.log(row)
|
||||
const $pulldown = this.$refs.pulldownRef
|
||||
if ($pulldown) {
|
||||
$pulldown.hidePanel()
|
||||
}
|
||||
|
||||
let data = Object.assign({}, row);
|
||||
|
||||
|
||||
this.formOptions4.data = data
|
||||
},
|
||||
cellClickEventStaff({ row }) {
|
||||
this.selectStaff({data:row})
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
// 监听属性
|
||||
watch: {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<style>
|
||||
.page-body {
|
||||
padding: 30px;
|
||||
background: #f4f4f4;
|
||||
}
|
||||
|
||||
.formtabs .ant-tabs-tabpane {
|
||||
/* background: white; */
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.gridPanel {
|
||||
height: calc(100vh - 600px);
|
||||
}
|
||||
|
||||
.footerbar {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.imagePanel {
|
||||
cursor: pointer;
|
||||
padding: 10px;
|
||||
width: 100px;
|
||||
|
||||
img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
}
|
||||
|
||||
.oplinks2 svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.oplinks2 i {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.search-dropdown {
|
||||
width: 1000px;
|
||||
height: 440px;
|
||||
background-color: #fafafa;
|
||||
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.search-dropdown-column {
|
||||
flex: 1;
|
||||
margin-left: 6px;
|
||||
margin-right: 6px;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.search-dropdown-column h3 {
|
||||
background: #d2d2d2;
|
||||
line-height: 30px;
|
||||
margin: 0;
|
||||
padding-left: 10px;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: white;
|
||||
margin-top: 10px;
|
||||
padding: 20px;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.card h4 {
|
||||
font-weight: bold;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.left {
|
||||
flex: 6;
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 3;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.card .vxe-form .vxe-form--item-inner {
|
||||
min-height: 24px;
|
||||
}
|
||||
|
||||
.card .vxe-form .vxe-form--item {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.formtitle {
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -2,6 +2,14 @@ var config = {
|
|||
|
||||
schemeType_main : "1",
|
||||
|
||||
enum_ids:{
|
||||
"成型方式" :"139924075643408384",
|
||||
"布产类型" :"139924804936404992",
|
||||
"花面" :"149639114486976512",
|
||||
"土质" :"149639177091158016",
|
||||
"查坯方式" :"149639114486976512",
|
||||
|
||||
},
|
||||
options_status_staff: [
|
||||
{value:1,label:'入职'},
|
||||
{value:2,label:'离职'}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@ const view = {
|
|||
redirect: '/login',
|
||||
component: view.tabs
|
||||
},
|
||||
touch: {
|
||||
path: '/touch',
|
||||
name: '首页',
|
||||
component: view.blank
|
||||
},
|
||||
dashboard: {
|
||||
name: '仪表盘',
|
||||
redirect: '/dashboard/workplace',
|
||||
|
|
@ -128,6 +133,11 @@ const view = {
|
|||
icon: 'warning',
|
||||
component: view.blank
|
||||
},
|
||||
TouchMesReporting : {
|
||||
name: '报工',
|
||||
path: '/touch/mesreporting',
|
||||
component: () => import('@/pages/Middle/Mes/MesReporting/MesReporting')
|
||||
},
|
||||
exp403: {
|
||||
authority: '*',
|
||||
name: 'exp403',
|
||||
|
|
@ -214,6 +224,6 @@ const view = {
|
|||
|
||||
}
|
||||
|
||||
|
||||
console.log(BaseRouterMap)
|
||||
|
||||
export default BaseRouterMap
|
||||
|
|
@ -30,9 +30,18 @@ if (Authorization != null) {
|
|||
|
||||
getRoutesConfig().then(result => { // 获取路由配置
|
||||
if (result.data.data != null) {
|
||||
const routesConfig = result.data.data
|
||||
const routesConfig = result.data.data;
|
||||
console.log(routesConfig)
|
||||
store.commit('account/setRoutesConfig', routesConfig) // 将路由配置信息存入vuex
|
||||
loadRoutes([routesConfig]) // 加载路由
|
||||
|
||||
let touchRoute = {
|
||||
router: "touch",
|
||||
children:[
|
||||
{router:'TouchMesReporting'}
|
||||
]
|
||||
|
||||
};
|
||||
loadRoutes([touchRoute,routesConfig]) // 加载路由
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -67,7 +76,7 @@ Vue.use(Router)
|
|||
// 不需要登录拦截的路由配置
|
||||
const loginIgnore = { // 登录白名单
|
||||
names: ['404', '403'], //根据路由名称匹配
|
||||
paths: ['/login'], //根据路由fullPath匹配
|
||||
paths: ['/login','/touch','/touch/index','/touch/mesreporting'], //根据路由fullPath匹配
|
||||
/**
|
||||
* 判断路由是否包含在该配置中
|
||||
* @param route vue-router 的 route 对象
|
||||
|
|
|
|||
Loading…
Reference in New Issue