Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

master_hella_20240701
gaojs 6 months ago
parent
commit
fb1c3d4c10
  1. 3
      .env.hella13
  2. 3
      .env.hella14
  3. 3
      .env.hella15
  4. 3
      .env.hella16
  5. 4
      .env.hella8
  6. 3
      .env.hella9
  7. 2
      README.md
  8. 2
      src/views/mes/abilityInfo/abilityInfo.data.ts
  9. 179
      src/views/mes/holidayCalendar/holidayCalendar.data.ts
  10. 75
      src/views/mes/holidayCalendar/index.vue
  11. 2
      src/views/mes/hrPersonAbility/hrPersonAbility.data.ts
  12. 8
      src/views/mes/jobcalendar/index.vue
  13. 2
      src/views/mes/patternType/patternType.data.ts
  14. 6
      src/views/mes/processroute/processroute.data.ts
  15. 2
      src/views/mes/workScheduling/components/reportAll.vue
  16. 6
      src/views/mes/workcalendar/index.vue
  17. 24
      src/views/wms/agvManage/interfaceInfo/index.vue
  18. 1
      src/views/wms/basicDataManage/itemManage/relegateRequest/relegateRequest.data.ts
  19. 75
      src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue
  20. 54
      src/views/wms/issueManage/productionreturn/productionreturnRequestMain/productionreturnRequestMain.data.ts
  21. 12
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue

3
.env.hella13

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.13:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.13:90'
# 租户配置
VITE_TENANT='["长春"]'

3
.env.hella14

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.14:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.14:90'
# 租户配置
VITE_TENANT='["长春"]'

3
.env.hella15

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.15:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.15:90'
# 租户配置
VITE_TENANT='["长春"]'

3
.env.hella16

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.16:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.16:90'
# 租户配置
VITE_TENANT='["长春"]'

4
.env.hella8

@ -35,3 +35,7 @@ VITE_INTERFACE_URL='http://172.22.32.8:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.8:90'
# 租户配置
VITE_TENANT='["成都"]'

3
.env.hella9

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.22.32.9:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.9:90'
# 租户配置
VITE_TENANT='["成都"]'

2
README.md

@ -1,4 +1,4 @@
## dev发布2024-05-15-003
## dev发布2024-05-15-004
**xxxx.data.ts 文件配置说明**
**form表单查询弹窗配置**
form: {

2
src/views/mes/abilityInfo/abilityInfo.data.ts

@ -140,7 +140,7 @@ export const AbilityInfo = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable: false
isTable: true
},
{
label: '状态',

179
src/views/mes/holidayCalendar/holidayCalendar.data.ts

@ -1,179 +0,0 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const HolidayCalendarRules = reactive({
endTime: [required],
concurrencyStamp: [required],
})
export const HolidayCalendar = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'ID',
field: 'id',
sort: 'custom',
isForm: false,
},
{
label: '日期',
field: 'holidayDate',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '结束时间',
field: 'endTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '备用字段一',
field: 'textOne',
sort: 'custom',
isSearch: true,
},
{
label: '备用字段二',
field: 'textTwo',
sort: 'custom',
isSearch: true,
},
{
label: '备用字段三',
field: 'textThree',
sort: 'custom',
isSearch: true,
},
{
label: '备用字段四',
field: 'textFour',
sort: 'custom',
isSearch: true,
},
{
label: '备用字段五',
field: 'textFive',
sort: 'custom',
isSearch: true,
},
{
label: '删除时间',
field: 'deleteTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '状态',
field: 'status',
sort: 'custom',
isSearch: true,
form: {
component: 'Radio'
},
},
{
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isSearch: true,
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true,
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
isForm: false,
},
{
label: '删除用户名',
field: 'deleter',
sort: 'custom',
isSearch: true,
},
{
label: '位置ID',
field: 'siteId',
sort: 'custom',
isSearch: true,
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
]))

75
src/views/mes/holidayCalendar/index.vue

@ -1,75 +0,0 @@
<template>
<div>
<el-calendar>
<template #date-cell="{ data }">
<div
style="height: 100"
:class="data.isSelected ? 'is-selected' : ''"
@click="handleClick(data.day)"
>
<div>{{ data.day.split('-').slice(1).join('-') }}</div>
<div v-if="arr.find((v) => v.date === data.day)">{{ arr.find((v) => v.date === data.day).content }}
</div>
<!-- <div>{{ data.isSelected ? '打羽毛球' : '' }}</div>  -->
</div>
</template>
</el-calendar>
<!-- 自定义弹出框 -->
<el-dialog v-model="dialogFormVisible" title="日程安排" width="600" draggable="true">
<el-form :model="calendar" :label-width="100">
<el-form-item label="日程内容">
<el-input v-model="calendar.content" autocomplete="off" />
</el-form-item>
<el-form-item label="创建时间">
<el-input v-model="calendar.content" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="save"> 确定 </el-button>
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { reactive, ref } from 'vue'
import { HolidayCalendar, HolidayCalendarRules } from './holidayCalendar.data'
import * as HolidayCalendarApi from '@/api/mes/holidayCalendar'
const dialogTableVisible = ref(false)
const dialogFormVisible = ref(false)
const formLabelWidth = '160px'
export default {
name: 'Calendar',
data() {
return {
value: new Date(),
arr: [
{ date: '2024-04-01', content: '打球' },
{ date: '2024-04-02', content: '打台球' },
{ date: '2024-04-03', content: '打篮球' },
{ date: '2024-04-04', content: '踢足球' }
],
dialogFormVisible:false,
calendar: {}
}
},
methods: {
handleClick(date) {
this.dialogFormVisible = true
this.calendar.date=date
},
save(){
}
}
}
</script>
<style scoped>
</style>

2
src/views/mes/hrPersonAbility/hrPersonAbility.data.ts

@ -178,7 +178,7 @@ export const HrPersonAbility = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable: false
isTable: true
},
{
label: '状态',

8
src/views/mes/jobcalendar/index.vue

@ -1,8 +0,0 @@
<template>
<el-calendar v-model="value" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const value = ref(new Date())
</script>

2
src/views/mes/patternType/patternType.data.ts

@ -140,6 +140,6 @@ export const PatternType = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable: false
isTable: true
}
]))

6
src/views/mes/processroute/processroute.data.ts

@ -4,6 +4,11 @@ import * as ItembasicApi from '@/api/wms/itembasic'
import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data'
// 表单校验
export const ProcessrouteRules = reactive({
processrouteCode: [required],
processName: [required],
productCode: [required],
ablityCode: [required],
ablityCode: [required],
})
export const Processroute = useCrudSchemas(reactive<CrudSchema[]>([
@ -26,6 +31,7 @@ export const Processroute = useCrudSchemas(reactive<CrudSchema[]>([
field: 'id',
sort: 'custom',
isForm: false,
isTable: false,
},
{

2
src/views/mes/workScheduling/components/reportAll.vue

@ -9,7 +9,7 @@
<template #title>{{ dialogTitle }} </template>
<el-button type="primary" @click="addRow" style="float:right;;">添加</el-button>
<el-table :data="tableData" style="border: 1px;stripe; width:1300px ;" >
<el-table-column prop="processName" label="工序名称" width="200px">
<el-table-column prop="processCodeSelected" label="工序名称" width="200px" >
<template #default="scope">
<el-select v-model="scope.row.processCodeSelected" @change="processChange" value-key="processCode">
<el-option v-for="item in processOption" :key="item.processCode" :label="item.processName" :value="item.processCode" />

6
src/views/mes/workcalendar/index.vue

@ -238,7 +238,7 @@
</el-table>
</el-form>
<div class="demo-drawer__footer">
<el-button @click="handleBatchClose"> </el-button>
<el-button @click="handleAddClose"> </el-button>
<el-button type="primary" @click="addWork"> 保存 </el-button>
</div>
</div>
@ -661,6 +661,10 @@ const batchAddWork = () => {
const handleBatchClose = () => {
batchAddDrawer.value = false
}
const handleAddClose = () => {
drawer.value = false
}
const savePlan = async (workList) => {
await workCalendarApi.createBatch(workList)
//await workCalendarApi.createObj(workList);

24
src/views/wms/agvManage/interfaceInfo/index.vue

@ -20,6 +20,7 @@
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:showOverflowTooltip="false"
:pagination="{
total: tableObject.total
}"
@ -27,6 +28,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #reqBody="{row}">
<el-tooltip>
<template #content>
<div class="toolContent">
<pre>{{ JSON.parse(row.reqBody.replace(/[\\]/g, '')) }}</pre>
</div>
</template>
<span class="ellipsis">{{row.reqBody}}</span>
</el-tooltip>
</template>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '序号', row.number)">
<span>{{ row.number }}</span>
@ -243,3 +254,16 @@ onMounted(async () => {
})
</script>
<style lang="scss">
.toolContent{
max-height: 300px;
overflow: auto;
}
.ellipsis{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 180px;
}
</style>

1
src/views/wms/basicDataManage/itemManage/relegateRequest/relegateRequest.data.ts

@ -20,6 +20,7 @@ export const RelegateRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'number',
sort: 'custom',
isSearch: true,
isForm:false,
},
{
label: '物料代码',

75
src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue

@ -70,6 +70,7 @@
:apiDelete="ProductionreturnRequestDetailApi.deleteProductionreturnRequestDetail"
@searchTableSuccessDetail="searchTableSuccessDetail"
@detailOpenForm="detailOpenForm"
:detailValidate="detailValidate"
/>
<!-- 创建标签 -->
@ -90,13 +91,14 @@
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/productionreturn-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
<!-- 标签打印 -->
<SearchTable style="width:905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { ProductionreturnRequestMain,ProductionreturnRequestMainRules,ProductionreturnRequestDetail,ProductionreturnRequestDetailRules,ProductionreturnRequestDetailLabel,ProductionreturnRequestDetailLabelRules } from './productionreturnRequestMain.data'
import { ProductionreturnRequestMain,ProductionreturnRequestMainRules,ProductionreturnRequestDetail,ProductionreturnRequestDetailRules,ProductionreturnRequestDetailLabel,ProductionreturnRequestDetailLabelRules, SupplierdeliverRequestPackage } from './productionreturnRequestMain.data'
import * as ProductionreturnRequestMainApi from '@/api/wms/productionreturnRequestMain'
import * as ProductionreturnRequestDetailApi from '@/api/wms/productionreturnRequestDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -130,6 +132,19 @@ const updataTableColumns = (val) => {
tableColumns.value = val
}
// /
const detailValidate = (data) => {
let tag = false;
if(data.qty <= 0){
message.warning('数量必须大于0')
tag = false;
return tag;
}else {
tag = true;
return tag;
}
}
//
const isItemType = async (itemCode, labelTypeParams) => {
let isType = false
@ -509,6 +524,34 @@ const openForm =async (type: string, row?: number) => {
formRef.value.open(type, row)
}
// --退
const searchTableSuccess1 = async (formField, searchField, val, formRef, type, row) => {
console.log('批量打印',val)
// let rows:any = []
// val.forEach(item=>{
// rows = [...rows,...item.selectionRows.map(item1=>item1.number)]
// })
if(val.length == 0){
message.warning("请先选择要打印的数据!")
return
}
// window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(','))
await PackageApi.batchPrintingLable(val.map(item1=>item1.number).join(',')).then(res => {
console.log(res)
if (labelType.value == 'cg') {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&asn_number='+res)
} else {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&asn_number='+res)
}
}).catch(err => {
console.log(err)
message.error('创建标签失败')
})
}
//
const { wsCache } = useCache()
/** 详情操作 */
@ -657,18 +700,32 @@ const handlePoint = async (row) => {
})
//
if (isCreateLabel.value) {
if (labelType.value == 'cg') {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&request_number='+row.number)
} else {
const src = ref(BASE_URL + '/jmreport/view/922734157577715712?token=' + getAccessToken())
window.open(src.value+'&request_number='+row.number)
}
labelPrint(row)
} else {
message.warning('请先创建标签')
}
}
const searchTableRef = ref()
const labelPrint = async (row) => {
tableObject.loading = true
const defaultParams = {'moduleName':'productreceipt_predict','recordNumber':row.number}
const {tableObject:tableObjectPrint ,tableMethods} = useTable({
defaultParams,
getListApi: PackageApi.getLabelDetailPage //
})
//
const { getList:getListPrint } = tableMethods
getListPrint()
tableObject.loading = false
const tableColumns = SupplierdeliverRequestPackage.allSchemas.tableFormColumns
tableColumns.forEach((item) => {
item.width = item.table?.width || 150
})
searchTableRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true)
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {

54
src/views/wms/issueManage/productionreturn/productionreturnRequestMain/productionreturnRequestMain.data.ts

@ -1338,3 +1338,57 @@ export const ProductionreturnRequestDetailLabelRules = reactive({
]
})
export const SupplierdeliverRequestPackage = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '包装号',
field: 'number',
sort: 'custom',
isSearch: true,
table: {
width: 180,
fixed: 'left'
},
},
{
label: '物料代码',
field: 'itemCode',
sort: 'custom',
isSearch: true,
table: {
width: 150,
},
},
{
label: '批次',
field: 'batch',
sort: 'custom',
isSearch: true,
table: {
width: 150,
},
},
{
label: '数量',
field: 'qty',
sort: 'custom',
table: {
width: 150,
},
},
{
label: '计量单位',
field: 'uom',
sort: 'custom',
dictType: DICT_TYPE.UOM,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
form: {
component: 'SelectV2'
},
table: {
width: 150,
},
},
]))

12
src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue

@ -117,7 +117,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHoldRequest'
businessType.value = 'OkToHold'
importFileName.value = '合格转隔离申请'
} else if ( routeName.value == 'HoldtookRequestMain') {
tableObject.params = {
@ -126,7 +126,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOkRequest'
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
tableObject.params = {
@ -135,7 +135,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrapRequest'
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
tableObject.params = {
@ -144,7 +144,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrapRequest'
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
} else if ( routeName.value == 'ScraptoholdRequestMain') {
tableObject.params = {
@ -153,11 +153,11 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHoldRequest'
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else if( routeName.value == 'InventorymoveRequestMain'){
fromInventoryStatus.value = null
businessType.value = 'InventorymoveRequest'
businessType.value = 'Move'
importFileName.value = '库存移动申请'
}else {
tableObject.params = {

Loading…
Cancel
Save