Browse Source

【nev-pc】暂存

ag_report_nev
安虹睿 1 year ago
parent
commit
a6629fed7f
  1. 23
      fe/PC/src/components/currenForm/index.vue
  2. 7
      fe/PC/src/components/tablePagination/index.vue
  3. 7
      fe/PC/src/components/umyTable/index.vue
  4. 25
      fe/PC/src/filters/status.js
  5. 64
      fe/PC/src/router/index.js
  6. 51
      fe/PC/src/utils/tableColumns/index.js
  7. 52
      fe/PC/src/utils/tabsDesTions/index.js
  8. 245
      fe/PC/src/views/basicData/ItemsManage/PositionCode.vue
  9. 178
      fe/PC/src/views/basicData/ItemsManage/TotalQuantity.vue
  10. 180
      fe/PC/src/views/basicData/ItemsManage/Utensil.vue
  11. 19
      fe/PC/src/views/rawMaterialManage/purchaseOnShelves/PutawayNote.vue
  12. 132
      fe/PC/src/views/rawMaterialManage/quality/InspectRequest.vue
  13. 1142
      fe/PC/src/views/rawMaterialManage/quality/InspectRequest_old.vue

23
fe/PC/src/components/currenForm/index.vue

@ -23,6 +23,29 @@
:prop="item.showProp ? item.prop + '.' + item.showProp : item.prop"
v-if="!item.hide ? true : false"
>
<!-- 有前缀的输入框 -->
<div v-if="item.type === 'prefixInput'" style="display:flex">
<el-input
:disabled="item.prefixDisabled"
:style="{width:item.prefixWidth}"
v-model="searchData[item.prefixProp]"></el-input>
<el-input
v-model="searchData[item.prop]"
:maxlength="item.maxlength"
:onkeyup="itemOnKeyUp(item,searchData[item.prop])"
clearable
:disabled="Boolean(item.disabled)"
:placeholder="item.placeholder || '请输入' + item.label"
:prefix-icon="item.icon"
:show-password="item.showPassword"
@change="changeInput(item.prop,$event)"
@clear="clearInput(item.prop,$event)"
@blur="
inputPlaceholder($event, item, 'blur',searchData)
"
@focus="inputPlaceholder($event, item, 'focus')"
></el-input>
</div>
<!-- 输入框 onkeyup: 正则表达式用于前端输入校验工作-->
<!-- :onkeyup="item.onkeyup" -->
<el-input

7
fe/PC/src/components/tablePagination/index.vue

@ -54,6 +54,7 @@
:firstFixed="true"
:cellStyle = "cellStyle"
:showOverflowTooltip="showOverflowTooltip"
:tableRowClassName="tableRowClassName"
>
<template>
<slot></slot>
@ -188,6 +189,12 @@ export default {
default: () => {
return Function;
}
},
tableRowClassName:{
type:Function,
default: () => {
return Function;
}
}
},
data () {

7
fe/PC/src/components/umyTable/index.vue

@ -16,6 +16,7 @@
:key="isUpdate"
:row-height="50"
header-row-class-name="uTableHeader"
:row-class-name="tableRowClassName"
use-virtual
:cell-class-name="cellClassName"
>
@ -505,6 +506,12 @@ export default {
default: () => {
return 280;
}
},
tableRowClassName:{
type:Function,
default: () => {
return Function;
}
}
},
data() {

25
fe/PC/src/filters/status.js

@ -2421,4 +2421,27 @@ export function unplannedReceiptType(index, prop) {
},
}
return Enum(type, index, prop)
}
}
// 位置码类型--判断前缀
export function positionCodeType(index, prop) {
let type = {
"W": {
value: "W",
label: "原料"
},
"Q": {
value: "Q",
label: "器具"
},
"K": {
value: "K",
label: "Kitting区"
},
"Z": {
value: "Z",
label: "组合区"
},
}
return Enum(type, index, prop)
}

64
fe/PC/src/router/index.js

@ -142,22 +142,54 @@ export const constantRoutes = [
}
}]
},
// {
// path: '/',
// component: Layout,
// redirect: '/gridlayout',
// hidden: true,
// children: [{
// path: 'gridlayout',
// component: () => import('@/views/gridLayout/indexShow'),
// name: 'Gridlayout',
// meta: {
// keepAlive : true,
// title: '首页编辑器',
// icon: '系统首页',
// }
// }]
// },
{
path: '/',
component: Layout,
redirect: '/gridlayout',
hidden: true,
children: [{
path: 'Utensil',
component: () => import('@/views/basicData/ItemsManage/Utensil.vue'),
name: 'Utensil',
meta: {
keepAlive : true,
title: 'Utensil',
icon: '系统首页',
}
}]
},
{
path: '/',
component: Layout,
redirect: '/gridlayout',
hidden: true,
children: [{
path: 'PositionCode',
component: () => import('@/views/basicData/ItemsManage/PositionCode.vue'),
name: 'PositionCode',
meta: {
keepAlive : true,
title: 'PositionCode',
icon: '系统首页',
}
}]
},
{
path: '/',
component: Layout,
redirect: '/gridlayout',
hidden: true,
children: [{
path: 'TotalQuantity',
component: () => import('@/views/basicData/ItemsManage/TotalQuantity.vue'),
name: 'TotalQuantity',
meta: {
keepAlive : true,
title: 'TotalQuantity',
icon: '系统首页',
}
}]
},
]
/**

51
fe/PC/src/utils/tableColumns/index.js

@ -3900,6 +3900,57 @@ export const exchangeDataMaintenancePage = [
{ label: _Names.tenantId, prop: "tenantId" },
]
// 位置码
export const PositionCode = [
{
label: _Names.itemCode,
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: _Names.supplierCode, prop: 'supplierCode' },
{ label: _Public.status, prop: 'status', type: "filter", filters: "openToClose" },
{ label: _Names.inspectType, prop: 'inspectType', type: "filter", filters: "inspectType" },
{ label: _Public.creationTime, prop: "creationTime", type: "dateTime" },
{ label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" },
{ label: _Public.remark, prop: "remark" },
{ label: _Public.description, prop: "description" },
]
// 器具
export const Utensil = [
{
label: _Names.itemCode,
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: _Names.supplierCode, prop: 'supplierCode' },
{ label: _Public.status, prop: 'status', type: "filter", filters: "openToClose" },
{ label: _Names.inspectType, prop: 'inspectType', type: "filter", filters: "inspectType" },
{ label: _Public.creationTime, prop: "creationTime", type: "dateTime" },
{ label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" },
{ label: _Public.remark, prop: "remark" },
{ label: _Public.description, prop: "description" },
]
// 总成量份
export const TotalQuantity = [
{
label: _Names.itemCode,
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: _Names.supplierCode, prop: 'supplierCode' },
{ label: _Public.status, prop: 'status', type: "filter", filters: "openToClose" },
{ label: _Names.inspectType, prop: 'inspectType', type: "filter", filters: "inspectType" },
{ label: _Public.creationTime, prop: "creationTime", type: "dateTime" },
{ label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" },
{ label: _Public.remark, prop: "remark" },
{ label: _Public.description, prop: "description" },
]
// 字段说明
// showProp: true //隐藏该字段的高级筛选+列表排序

52
fe/PC/src/utils/tabsDesTions/index.js

@ -2793,3 +2793,55 @@ export const Department = [
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
// 位置码
export const PositionCode = [
{
label: _Names.itemCode,
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: _Names.supplierCode, prop: 'supplierCode' },
{ label: _Public.status, prop: 'status', type: "filter", filters: "openToClose" },
{ label: _Names.inspectType, prop: 'inspectType', type: "filter", filters: "inspectType" },
{ label: _Public.creationTime, prop: "creationTime", type: "dateTime" },
{ label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" },
{ label: _Public.remark, prop: "remark" },
{ label: _Public.description, prop: "description" },
]
// 器具
export const Utensil = [
{
label: _Names.itemCode,
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: _Names.supplierCode, prop: 'supplierCode' },
{ label: _Public.status, prop: 'status', type: "filter", filters: "openToClose" },
{ label: _Names.inspectType, prop: 'inspectType', type: "filter", filters: "inspectType" },
{ label: _Public.creationTime, prop: "creationTime", type: "dateTime" },
{ label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" },
{ label: _Public.remark, prop: "remark" },
{ label: _Public.description, prop: "description" },
]
// 总成量份
export const TotalQuantity = [
{
label: _Names.itemCode,
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: _Names.supplierCode, prop: 'supplierCode' },
{ label: _Public.status, prop: 'status', type: "filter", filters: "openToClose" },
{ label: _Names.inspectType, prop: 'inspectType', type: "filter", filters: "inspectType" },
{ label: _Public.creationTime, prop: "creationTime", type: "dateTime" },
{ label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" },
{ label: _Public.remark, prop: "remark" },
{ label: _Public.description, prop: "description" },
]

245
fe/PC/src/views/basicData/ItemsManage/PositionCode.vue

@ -0,0 +1,245 @@
<template>
<div class="page-box" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
@buttonOperationClick="buttonOperationClick"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 新增与编辑 -->
<newAndEdiDialog
:loading="Loading.newAndEdiLoading"
:active="active"
:pageStatus="pageStatus"
:formReveal="formReveal"
:formTitle="formTitle"
:displayDialog="editDialog"
:FormData="formReveal ? CreateFormData : editFormData"
:Form="formReveal ? CreateForm : editForm"
:Options="editOptions"
:Handle="editHandle"
:Rules="formReveal ? editRules.cerateRule : editRules.editRule"
@push="addNewDataPush"
@FormSubmit="FormSubmitHandle"
@close="FormClose"
@goBack="goBack"
></newAndEdiDialog>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
<!-- 搜索按钮窗体组件 -->
<searchPage
ref="searchTable"
:tableLoading="Loading.autoTableLoading"
:advancedFilter="advancedFilter()"
:filterPageListParams="filterPageListParams"
:formTitle="searchTitle"
:displayDialog="displayDialog.AddNewDialog"
:searchTableData="searchData"
:searchTableColumns="searchColumns"
:searchTotalCount="searchTotalCount"
:supplierItemPage="searchPageListParams"
@handleSelectionChange="prepareFormData"
@SizeChange="searchAlterResultCount($event, searchPageListParams)"
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
:tableColumns="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:dropdownData="dropdownData"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbuttonHandle"
@handleCommand="drawerHandle"
@close-value="closeValue"
></curren-Drawer>
</div>
</template>
<script>
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins"
import { mixins } from "@/mixins/mixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "PositionCode",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
filterSelectMixins,
newAndEdiDialogMixins
],
computed: {
editDialog: {
get: function () {
return this.displayDialog.newDialog || this.displayDialog.editDialog;
},
},
},
data () {
return {
URL: 'basedata/item-quality',
//
currenButtonData: [
this.defaultAddBtn(),//
this.defaultImportBtn(),//
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
//
CreateFormData: {
code:null,
codeSuffix:null,
codeType:null,
stdPackQty:null,
itemCode:null,
locationCode:null,
},
//
editFormData: {
code:null,
codeSuffix:null,
codeType:null,
stdPackQty:null,
itemCode:null,
locationCode:null,
concurrencyStamp: ""
},
editOptions: {},
CreateForm: [
{ type: "select", label: "类型", prop: "codeType", colSpan: 12 ,options:'positionCodeType' },
{ type: "prefixInput", label: "位置码", prop: "codeSuffix",prefixProp:"codeType",prefixWidth:'50px',prefixDisabled:true, colSpan: 12 },
{ type: "inputNumber", label: "标包数量", prop: "stdPackQty", colSpan: 12, min:1 },
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic")},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.CreateFormData) },
colSpan: 12
},
{ type: "filterSelect", label: "库位", prop: "locationCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/location")},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/location', 'Location', '库位选择', this.CreateFormData) },
colSpan: 12
},
],
editForm: [
{ type: "select",disabled:true, label: "类型", prop: "codeType", colSpan: 12 ,options:'positionCodeType' },
{ type: "prefixInput", label: "位置码", prop: "codeSuffix",prefixProp:"codeType",prefixWidth:'50px',prefixDisabled:true, colSpan: 12 },
{ type: "inputNumber", label: "标包数量", prop: "stdPackQty", colSpan: 12, min:1 },
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic")},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.editFormData) },
colSpan: 12
},
{ type: "filterSelect", label: "库位", prop: "locationCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/location")},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/location', 'Location', '库位选择', this.editFormData) },
colSpan: 12
},
],
editRules: {
cerateRule: {
codeType: [{ required: true, trigger: "blur", message: "不可为空" }],
codeSuffix: [{ required: true, trigger: "blur", message: "不可为空" }],
stdPackQty: [{ required: true, trigger: "blur", message: "不可为空" }],
itemCode: [{ required: true, trigger: "change", message: "不可为空" }],
locationCode: [{ required: true, trigger: "change", message: "不可为空" }],
},
editRule: {
codeSuffix: [{ required: true, trigger: "blur", message: "不可为空" }],
stdPackQty: [{ required: true, trigger: "blur", message: "不可为空" }],
itemCode: [{ required: true, trigger: "change", message: "不可为空" }],
locationCode: [{ required: true, trigger: "change", message: "不可为空" }],
}
},
};
},
mounted () {
this.paging();
},
methods: {
addNewDataPush(val){
console.log(201,val)
},
drawerbuttonHandle(val){
if(val == "edit"){
this.formTitle = this.$route.meta.title + "编辑";
this.formReveal = false
this.theEvent = "edit"
const listAssign = (arr1, arr2) => {
Object.keys(arr1).forEach(item => {
arr1[item] = arr2[item]
})
}
listAssign(this.editFormData, this.propsData)
if(this.$route.name == 'CustomerItem'){
this.editFormData.beginTime = new Date(this.propsData.beginTime)
this.editFormData.endTime = new Date(this.propsData.endTime)
}
// this.$listAssign(this.editFormData, this.propsData)
this.displayDialog.editDialog = true
// todo:-code
this.editFormData.codeType = this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(0,1) : null
this.editFormData.codeSuffix = this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(1) : null
console.log(210,this.editFormData)
}else{
this.drawerbutton(val)
}
},
FormSubmitHandle(val){
// todo:codeType + code
if(this.formReveal){
this.CreateFormData.code = this.CreateFormData.codeType + this.CreateFormData.codeSuffix
}else{
this.editFormData.code = this.editFormData.codeType + this.editFormData.codeSuffix
}
this.$nextTick(()=>{
this.FormSubmit(val)
})
},
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/basicData.scss";
</style>

178
fe/PC/src/views/basicData/ItemsManage/TotalQuantity.vue

@ -0,0 +1,178 @@
<template>
<div class="page-box" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
@buttonOperationClick="buttonOperationClick"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 新增与编辑 -->
<newAndEdiDialog
:loading="Loading.newAndEdiLoading"
:active="active"
:pageStatus="pageStatus"
:formReveal="formReveal"
:formTitle="formTitle"
:displayDialog="editDialog"
:FormData="formReveal ? CreateFormData : editFormData"
:Form="formReveal ? CreateForm : editForm"
:Options="editOptions"
:Handle="editHandle"
:Rules="formReveal ? editRules.cerateRule : editRules.editRule"
@push="addNewDataPush"
@FormSubmit="FormSubmit"
@close="FormClose"
@goBack="goBack"
></newAndEdiDialog>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
<!-- 搜索按钮窗体组件 -->
<searchPage
ref="searchTable"
:tableLoading="Loading.autoTableLoading"
:advancedFilter="advancedFilter()"
:filterPageListParams="filterPageListParams"
:formTitle="searchTitle"
:displayDialog="displayDialog.AddNewDialog"
:searchTableData="searchData"
:searchTableColumns="searchColumns"
:searchTotalCount="searchTotalCount"
:supplierItemPage="searchPageListParams"
@handleSelectionChange="prepareFormData"
@SizeChange="searchAlterResultCount($event, searchPageListParams)"
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
:tableColumns="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:dropdownData="dropdownData"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@handleCommand="drawerHandle"
@close-value="closeValue"
></curren-Drawer>
</div>
</template>
<script>
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins"
import { mixins } from "@/mixins/mixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "TotalQuantity",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
filterSelectMixins,
newAndEdiDialogMixins
],
computed: {
editDialog: {
get: function () {
return this.displayDialog.newDialog || this.displayDialog.editDialog;
},
},
},
data () {
return {
URL: 'basedata/item-quality',
//
currenButtonData: [
this.defaultAddBtn(),//
this.defaultImportBtn(),//
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
//
CreateFormData: {
code:null,
stdPackQty:null,
itemCode:null,
locationCode:null,
},
//
editFormData: {
code:null,
stdPackQty:null,
itemCode:null,
locationCode:null,
concurrencyStamp: ""
},
editOptions: {},
CreateForm: [
// 1 2
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic")},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.CreateFormData) },
colSpan: 12
},
{ type: "input", label: "总成", prop: "code", colSpan: 12 },
{ type: "inputNumber", label: "数量", prop: "qty", colSpan: 12, min:1 },
],
editForm: [
{ type: "input", label: "总成", prop: "code", colSpan: 12 },
{ type: "inputNumber", label: "数量", prop: "qty", colSpan: 12, min:1 },
],
editRules: {
cerateRule: {
code: [{ required: true, trigger: "blur", message: "不可为空" }],
qty: [{ required: true, trigger: "blur", message: "不可为空" }],
},
editRule: {
code: [{ required: true, trigger: "blur", message: "不可为空" }],
qty: [{ required: true, trigger: "blur", message: "不可为空" }],
}
},
};
},
mounted () {
this.paging();
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/basicData.scss";
</style>

180
fe/PC/src/views/basicData/ItemsManage/Utensil.vue

@ -0,0 +1,180 @@
<template>
<div class="page-box" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
@buttonOperationClick="buttonOperationClick"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 新增与编辑 -->
<newAndEdiDialog
:loading="Loading.newAndEdiLoading"
:active="active"
:pageStatus="pageStatus"
:formReveal="formReveal"
:formTitle="formTitle"
:displayDialog="editDialog"
:FormData="formReveal ? CreateFormData : editFormData"
:Form="formReveal ? CreateForm : editForm"
:Options="editOptions"
:Handle="editHandle"
:Rules="formReveal ? editRules.cerateRule : editRules.editRule"
@push="addNewDataPush"
@FormSubmit="FormSubmit"
@close="FormClose"
@goBack="goBack"
></newAndEdiDialog>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
<!-- 搜索按钮窗体组件 -->
<searchPage
ref="searchTable"
:tableLoading="Loading.autoTableLoading"
:advancedFilter="advancedFilter()"
:filterPageListParams="filterPageListParams"
:formTitle="searchTitle"
:displayDialog="displayDialog.AddNewDialog"
:searchTableData="searchData"
:searchTableColumns="searchColumns"
:searchTotalCount="searchTotalCount"
:supplierItemPage="searchPageListParams"
@handleSelectionChange="prepareFormData"
@SizeChange="searchAlterResultCount($event, searchPageListParams)"
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
:tableColumns="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:dropdownData="dropdownData"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@handleCommand="drawerHandle"
@close-value="closeValue"
></curren-Drawer>
</div>
</template>
<script>
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins"
import { mixins } from "@/mixins/mixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "Utensil",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
filterSelectMixins,
newAndEdiDialogMixins
],
computed: {
editDialog: {
get: function () {
return this.displayDialog.newDialog || this.displayDialog.editDialog;
},
},
},
data () {
return {
URL: 'basedata/item-quality',
//
currenButtonData: [
this.defaultAddBtn(),//
this.defaultImportBtn(),//
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
//
CreateFormData: {
code:null,
stdPackQty:null,
creationTime:null,
createUser:null,
},
//
editFormData: {
code:null,
stdPackQty:null,
creationTime:null,
createUser:null,
concurrencyStamp: ""
},
editOptions: {},
CreateForm: [
{ type: "input", label: "器具号", prop: "code", colSpan: 12 },
{ type: "inputNumber", label: "标包数量", prop: "stdPackQty", colSpan: 12, min:1 },
{ type: "dateTime", label: "创建时间", prop: "creationTime", colSpan: 12 },
{ type: "input", label: "创建人", prop: "createUser", colSpan: 12 },
],
editForm: [
{ type: "input", label: "器具号", prop: "code", colSpan: 12 },
{ type: "inputNumber", label: "标包数量", prop: "stdPackQty", colSpan: 12, min:1 },
{ type: "dateTime", label: "创建时间", prop: "creationTime", colSpan: 12 },
{ type: "input", label: "创建人", prop: "createUser", colSpan: 12 },
],
editRules: {
cerateRule: {
code: [{ required: true, trigger: "blur", message: "不可为空" }],
stdPackQty: [{ required: true, trigger: "blur", message: "不可为空" }],
creationTime: [{ required: true, trigger: "change", message: "不可为空" }],
createUser: [{ required: true, trigger: "change", message: "不可为空" }],
},
editRule: {
code: [{ required: true, trigger: "blur", message: "不可为空" }],
stdPackQty: [{ required: true, trigger: "blur", message: "不可为空" }],
creationTime: [{ required: true, trigger: "change", message: "不可为空" }],
createUser: [{ required: true, trigger: "change", message: "不可为空" }],
}
},
};
},
mounted () {
this.paging();
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/basicData.scss";
</style>

19
fe/PC/src/views/rawMaterialManage/purchaseOnShelves/PutawayNote.vue

@ -22,6 +22,7 @@
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
:tableRowClassName="tableRowClassName"
>
</tablePagination>
<!-- 抽屉 -->
@ -132,15 +133,31 @@ export default {
_printData.details = []
for(let i in _sumArr){ _printData.details.push(_sumArr[i]) }
let data = initPrintAllData(_printData,'ysd.rdlx');
this.Print(data)
this.Print(data).then(()=>{
// todo:
console.log(136)
})
}).catch(err => {
this.Loading.appMainLoading = false;
})
}
},
// todo:
tableRowClassName({row, rowIndex}){
console.log(333,row, rowIndex)
if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
};
</script>
<style lang="scss" scoped>
@import "../../../styles/basicData.scss";
</style>
<style>
.el-table .success-row {
background: #d5f1e1 !important;
}
</style>

132
fe/PC/src/views/rawMaterialManage/quality/InspectRequest.vue

@ -49,8 +49,7 @@
:MaxResultCount="MaxResultCountDetails"
@alterResultCountDetails="alterResultCountDetails"
@alertoldSkipCountDetails="alertoldSkipCountDetails"
@buttonClick="currenDrawerButtonClick"
>
@buttonClick="currenDrawerButtonClick">
<template v-if="currentTagName == 'hz' ">
<!-- @buttonClick="buttonClick" -->
<el-table-column
@ -71,6 +70,7 @@
</el-table-column>
</template>
</curren-Drawer>
<!-- 检验弹窗 -->
<el-dialog
title="检验"
:visible.sync="inspectShow"
@ -78,8 +78,7 @@
width="88%"
:modal-append-to-body="false"
:append-to-body="true"
:show-close="false"
>
:show-close="false">
<el-row :gutter="24">
<el-col :span="14" >
<curren-Form
@ -144,8 +143,7 @@
width="50%"
:modal-append-to-body="false"
:append-to-body="true"
:show-close="false"
>
:show-close="false">
<curren-Form
class="handleForm"
size="medium"
@ -156,6 +154,7 @@
>
</curren-Form>
</el-dialog> -->
<!-- 质检详情 -->
<el-dialog
title="质检详情"
v-loading="loading"
@ -216,16 +215,41 @@
</template>
</curren-Form>
</el-dialog>
<pdf
:urlPDF="urlPDF"
:base64PDF="base64PDF"
:title="titlePDF"
v-if="isShowPDF"
:isShowPDF="isShowPDF"
:loadingPDF="loadingPDF"
@closePDF="closePDF"
:showDownLoad="true"
<pdf
:urlPDF="urlPDF"
:base64PDF="base64PDF"
:title="titlePDF"
v-if="isShowPDF"
:isShowPDF="isShowPDF"
:loadingPDF="loadingPDF"
@closePDF="closePDF"
:showDownLoad="true"
></pdf>
<!-- 拆箱弹窗 -->
<el-dialog
title="拆箱"
v-loading="devanLoading"
:visible.sync="devanShow"
top="10vh"
width="800px"
:modal-append-to-body="false"
:append-to-body="true"
:show-close="false">
<div style="height:60vh">
<currenTableFlex
style="width:500px;margin:0 auto"
:flexTableData="flexTableData"
:flexSearchOptions="editOptions"
:flexTableColumns="flexTableColumns"
:showAddBtn="true"
:showAllDeleteButton="true"
></currenTableFlex>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="devanCancelHandel"> </el-button>
<el-button type="primary" @click="devanSureHandel">确定拆箱</el-button>
</div>
</el-dialog>
</div>
</template>
@ -238,6 +262,7 @@ import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import currenDescriptions from "@/components/currenDescriptions"
import currenTableFlex from "@/components/currenTableFlex"
import pdf from "@/components/pdf"
export default {
name: "InspectRequest",
@ -250,6 +275,7 @@ export default {
],
components: {
currenDescriptions,
currenTableFlex,
pdf
},
data () {
@ -260,7 +286,17 @@ export default {
uploadShow: false,
supplierShow: false,
inspectShow: false,
//
flexTableData:[{qty:null}],
//
flexTableColumns:[
{type:'inputNumber', label: "数量", prop: "qty", width:"auto",min:1 },
],
devanShow:false,//
devanLoading:false,//
devanMaxNumber:null,//
inspectNoticeDetailsShow: false,
summaryCurrentRow:null,
loading:false,
// loading
guideBookLoading:false,
@ -493,8 +529,9 @@ export default {
// { label: "", prop: "receiveUom", width:'100%' },
{ label: "收货数量", prop: "receiveQty", width:'100%' },
{ label: "状态", prop: "detailInspectStatus", type: "filter", filters: "detailInspectStatus", width:'100%' },
{ type: "button", label: "检验", prop: "buttonHide",alwaysShow:true, width:'100%' },
{ type: "button", label: "清除检验", alwaysShow:true,width:'100%' },
{ type: "button", label: "拆箱", alwaysShow:true, width:'130px' },
{ type: "button", label: "检验", prop: "buttonHide",alwaysShow:true, width:'130px' },
{ type: "button", label: "清除检验", alwaysShow:true,width:'150px' },
],
//-
QueryDetailsFormData: {
@ -604,8 +641,10 @@ export default {
})
}
},
// table
//
buttonClick(row) {
console.log(642,row)
this.summaryCurrentRow = row
//
if (row.summaryInspectStatus == 2) {
this.$message.error('已完成质检')
@ -735,7 +774,12 @@ export default {
this.inspectFormData.details = []
this.$listAssign(this.inspectFormData, row)
// console.log('- label', label)
if (label == '检验') {
if(label == '拆箱'){
console.log(row)
this.devanMaxNumber = row.goodQty
this.devanShow = true
}
else if (label == '检验') {
getListByItemcode({itemCode: row.itemCode}, 'basedata/item-guide-book').then(res => {
if (res.length > 0) {
this.guideBookData = res[0]
@ -1056,6 +1100,56 @@ export default {
currenTabsChange(row){
this.currentTagName = row.name
},
//
devanCancelHandel(){
this.flexTableData = [{qty:null}]
this.devanShow = false
this.devanLoading = false
},
//
devanSureHandel(){
if(this.flexTableData.length <= 0){
this.$errorMsg("请添加拆箱数据")
return
}
let _noNumber = 0
let _allNumber = 0
//
this.flexTableData.forEach(item=>{
if(!item.qty || item.qty == 0){
_noNumber ++
}else{
_allNumber += Number(item.qty)
}
})
if(Number(_noNumber) > 0){
this.$errorMsg(`单条拆分数量必须大于0,请修改数量`)
return
}
if(Number(_allNumber) > Number(this.devanMaxNumber)){
this.$errorMsg(`拆箱总数必须小于${this.devanMaxNumber},请修改数量`)
return
}
// todo:
this.devanLoading = true
// todo:
this.devanCancelHandel()
let _url = this.detailURL ? this.detailURL : this.URL
getDetailed(this.propsData.id, _url).then(res => {
//
this.tableDataDetails = JSON.parse(JSON.stringify(res))
let linshiTableDataDetails = JSON.parse(JSON.stringify(this.tableDataDetails))
this.totalCountDetails = res.details.length
//
linshiTableDataDetails.details.splice(this.MaxResultCountDetails,this.totalCountDetails);
this.propsData = linshiTableDataDetails
this.buttonClick(this.summaryCurrentRow)
this.devanLoading = false
}).catch(err => {
this.devanLoading = false
})
}
}
}
</script>

1142
fe/PC/src/views/rawMaterialManage/quality/InspectRequest_old.vue

File diff suppressed because it is too large
Loading…
Cancel
Save