Browse Source

Merge branch 'intex' into intex_zhaoxuebing

intex_zhaoxuebing
赵雪冰 4 days ago
parent
commit
349d0d739b
  1. 6
      .env
  2. 11
      src/components/XButton/src/ButtonBase.vue
  3. 8
      src/components/rowDrop/index.vue
  4. 1
      src/utils/dict.ts
  5. 11
      src/utils/systemParam.ts
  6. 8
      src/views/login/components/QRCodePDA.vue
  7. 6
      src/views/profile/index.vue
  8. 2
      src/views/wms/basicDataManage/supplierManage/supplierAddressModelDeli/index.vue
  9. 2
      src/views/wms/deliversettlementManage/saleEstimate/unfinishedShipmentMain/index.vue
  10. 11
      src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts
  11. 2
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue
  12. 382
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordWMS/index.vue
  13. 1431
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordWMS/supplierdeliverRecordMain.data.ts

6
.env

@ -15,3 +15,9 @@ VITE_APP_CAPTCHA_ENABLE=true
# 百度统计
VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc
# 应用版本号
VITE_VERSION = V1.0
# 更新版本号时间
VITE_VERSION_TIME = 2025-03-31 09:00:00

11
src/components/XButton/src/ButtonBase.vue

@ -1,4 +1,5 @@
<template>
<div ref="buttonRefs">
<div v-for="(item, index) in Butttondata" :key="index" class="btn-div">
<el-button
v-show="!item.hide"
@ -28,6 +29,7 @@
:detailAllSchemas="detailAllSchemas"
@closeRowDrop="closeRowDrop"
@updataTableColumns="updataTableColumns"
:rowDropHeight="rowDropHeight"
/>
<template #reference>
<el-button
@ -45,6 +47,7 @@
</template>
</el-popover>
</div>
</div>
<slot></slot>
</template>
<script setup>
@ -106,6 +109,14 @@ defineExpose({
const updataTableColumns = (val) => {
emit('updataTableColumns', val)
}
const buttonRefs = ref()
const rowDropHeight = ref('')
onMounted(() => {
const client = buttonRefs.value.getBoundingClientRect()
console.log(999, client.top)
rowDropHeight.value = client.top + 'px'
// console.log(100,height22)
})
</script>
<style scoped lang="scss">
.btn-div{

8
src/components/rowDrop/index.vue

@ -1,6 +1,6 @@
<template>
<!-- <Dialog title="字段设置" width="270" v-model="popoverVisible" :scroll="true" :maxHeight="500"> -->
<div class="test_wrapper" @dragover="dragover($event)">
<div class="test_wrapper" @dragover="dragover($event)" :style="{maxHeight:`calc(100vh - ${rowDropHeight} - 100px)`}">
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handlecheckallchange">{{ t('ts.全部') }}</el-checkbox>
<el-checkbox-group v-model="checkedDataList" @change="handlecheckedchange">
<draggable :list="allData" :force-fallback="true" chosen-class="chosen" animation="300" @end="dragend" @update="dragenter" >
@ -36,6 +36,10 @@ const props = defineProps({
type: Object,
default: null
},
rowDropHeight: {
type: String,
default: ''
},
})
const popoverVisible = ref(false)
const route = useRoute() //
@ -257,7 +261,7 @@ defineExpose({
</script>
<style lang="scss" scoped>
.test_wrapper{
max-height: calc(100vh - 350px);
// max-height: calc(100vh - 350px);
overflow-y: auto;
}
.footer{

1
src/utils/dict.ts

@ -430,4 +430,5 @@ export enum DICT_TYPE {
INVENTORY_MODE = "inventory_mode",
INVOICE_TYPE = 'invoice_type', // 开票种类
DELISHIF = "deliShif",// 班次
IS_RECEIVE = "is_receive",//是否生成
}

11
src/utils/systemParam.ts

@ -8,7 +8,8 @@ const systermUpdateAlert = ref(import.meta.env.VITE_SYSTERM_UPDATE_ALERT)
const systermUpdateUrl = ref(import.meta.env.VITE_SYSTERM_UPDATE_URL)
const needCode = ref(import.meta.env.VITE_NEED_CODE)
const pdaUrl = ref(import.meta.env.VITE_PDA_URL)
const version = ref(import.meta.env.VITE_VERSION)
const versionTime = ref(import.meta.env.VITE_VERSION_TIME)
const mode = ref(import.meta.env.MODE)
// 获取baseUrl
export const getBaseUrl = () => {
@ -95,4 +96,12 @@ export const getPDAUrl = () => {
}
}
//获取版本号
export const getVersion = () => {
return version.value
}
//获取版本号更新时间
export const getVersionTime = () => {
return versionTime.value
}

8
src/views/login/components/QRCodePDA.vue

@ -5,12 +5,16 @@
<!-- <vue-qr bgSrc='https://img2.baidu.com/it/u=1188690822,3145215011&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1038' logoSrc="https://img1.baidu.com/it/u=605875105,1314303687&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" text="Hello world!" :size="200"></vue-qr> -->
<vue-qr :text="apkUrl" :size="200" ></vue-qr>
</div>
<el-button type="primary" v-if="pdaUrl" link @click="handleClose">PDA安装程序下载链接</el-button>
<div style="display: flex; flex-direction: row; justify-content: space-between;width: 100%;">
<span style="margin-left:50px;color:#909399;font-size: 14px;" v-if="version">版本号 {{version}}</span>
<el-button type="primary" v-if="pdaUrl" link @click="handleClose">PDA安装程序下载链接</el-button>
</div>
</div>
</template>
<script setup lang="ts">
import { downloadApk } from "@/api/login";
import { getPDAUrl,getNeedCode } from '@/utils/systemParam'
import { getPDAUrl,getNeedCode,getVersion } from '@/utils/systemParam'
const version = ref(getVersion())
// import logoImg from '@/assets/imgs/logo_white_blue.png'

6
src/views/profile/index.vue

@ -29,12 +29,18 @@
</div>
</el-card>
</div>
<span style="position:absolute;bottom:20px;right:20px;color:#909399;font-size: 14px;" v-if="version">版本号 {{ version }}&nbsp;&nbsp;&nbsp;更新时间{{versionTime}}</span>
</template>
<script setup lang="ts" name="Profile">
import { BasicInfo, ProfileUser, ResetPwd, UserSocial } from './components/'
import { getPDAUrl,getNeedCode,getVersion,getVersionTime } from '@/utils/systemParam'
const { t } = useI18n()
const activeName = ref('basicInfo')
const version = ref(getVersion())
const versionTime = ref(getVersionTime())
</script>
<style scoped>
.user {

2
src/views/wms/basicDataManage/supplierManage/supplierAddressModelDeli/index.vue

@ -58,7 +58,7 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="SupplierAddressModelDeli.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/supplier-address-model-deli/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm ref="importFormRef" url="/wms/supplier-address-model-deli/import" :importTemplateData="importTemplateData" @success="importSuccess" :updateIsShow="false" :coverIsShow="false" :mode="2"/>
</template>
<script setup lang="ts">

2
src/views/wms/deliversettlementManage/saleEstimate/unfinishedShipmentMain/index.vue

@ -215,9 +215,11 @@ const handleExport = async () => {
//
await message.exportConfirm()
//
tableObject.loading = true
exportLoading.value = true
const data = await UnfinishedShipmentDetailApi.exportUnfinishedShipmentDetail(tableObject.params)
download.excel(data, '已发未结记录主.xlsx')
tableObject.loading = false
} catch {
} finally {
exportLoading.value = false

11
src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts

@ -728,6 +728,17 @@ export const RepleinshRequestDetail = useCrudSchemas(
}
}
},
{
label: 'ERP默认收货库位',
field: 'defaultErpLocationCode',
sort: 'custom',
isTableForm: false,
sortTableDefault: 10,
table: {
width: 150
},
isTable: true,
},
{
label: '到库位代码',
field: 'toLocationCode',

2
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue

@ -328,7 +328,7 @@ const resonSubmit = async (row) => {
confirmButtonText: t('common.ok'),
cancelButtonText: t('common.cancel'),
inputPattern: /^[\s\S]*.*\S[\s\S]*$/, //
inputErrorMessage: t(`ts.${'驳回原因不能为空,且不超过256字'}`),
inputErrorMessage: t(`${'驳回原因不能为空,且不超过256字'}`),
inputType: 'textarea',
inputValidator: (value) => {
if (value.length > 60 || value.length == 0) {

382
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordWMS/index.vue

@ -0,0 +1,382 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search
:schema="[
...SupplierdeliverRecordMain.allSchemas.searchSchema,
...SupplierdeliverRecordDetail.allSchemas.searchSchema
]"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SupplierdeliverRecordMain.allSchemas"
:detailAllSchemas="SupplierdeliverRecordDetail.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{ row }">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row, $index }">
<ButtonBaseMore
:Butttondata="butttondata(row, $index)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
@success="getList"
:rules="SupplierdeliverRecordMainRules"
:formAllSchemas="SupplierdeliverRecordMain.allSchemas"
:tableAllSchemas="SupplierdeliverRecordDetail.allSchemas"
:tableFormRules="SupplierdeliverRecordDetailRules"
:isBusiness="true"
/>
<!-- 详情 -->
<Detail
ref="detailRef"
:isShowPackNumber="true"
:annexTable="[
{
label: '质检明细',
prop: 'uploadFile',
hasPermi: 'wms:supplierdeliver-request-main:uploadCheck',
tableName: 'SupplierdeliverInspectionDetail',
hasSubDetail: true, //
showPreview: true, //
showDownload: true,
hiddenDelete: true,
hiddenUpload: true,
align: 'left',
queryParams: [
{
queryField: 'tableId',
rowField: 'annexMasterId'
}
],
//
subDetailTableData: {
queryParams: [
{
queryField: 'masterId',
rowField: 'annexMasterId'
}
], //
getSubList: SupplierdeliverInspectionDetailApi.getSupplierdeliverInspectionDetailPage, //
tableColumns: SupplierdeliverInspectionDetail.allSchemas.tableColumns,
tableList: [], //
total: 1,
pageSize: 10,
currentPage: 1
}
}
]"
:isBasic="false"
:allSchemas="SupplierdeliverRecordMain.allSchemas"
:detailAllSchemas="SupplierdeliverRecordDetail.allSchemas"
:detailAllSchemasRules="SupplierdeliverRecordDetailRules"
:apiPage="SupplierdeliverRecordDetailApi.getSupplierdeliverRecordDetailPage"
:buttondataTable="buttondataTable"
@tableFormButton="tableFormButton"
/>
<!-- 父包装弹窗 -->
<BasicForm
ref="detailParenPackingRef"
@success="getList"
:tableAllSchemas="SupplierdeliverRecordDetailPickingNumer.allSchemas"
:tableFormRules="SupplierdeliverRecordDetailRules"
:tableData="detatableData.tableList"
:isBusiness="true"
:isShowButton="false"
:isShowReduceButton="false"
:isShowFooterButtton="false"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import * as SupplierdeliverInspectionDetailApi from '@/api/wms/supplierdeliverInspectionDetail'
import {
SupplierdeliverInspectionDetail,
SupplierdeliverInspectionDetailRules
} from '../supplierdeliverInspectionDetail/supplierdeliverInspectionDetail.data'
import {
SupplierdeliverRecordMain,
SupplierdeliverRecordMainRules,
SupplierdeliverRecordDetail,
SupplierdeliverRecordDetailRules,
SupplierdeliverRecordDetailPickingNumer
} from './supplierdeliverRecordMain.data'
import * as SupplierdeliverRecordMainApi from '@/api/wms/supplierdeliverRecordMain'
import * as SupplierdeliverRecordDetailApi from '@/api/wms/supplierdeliverRecordDetail'
import * as SupplierdeliverRequestDetailApi from '@/api/wms/supplierdeliverRequestDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { getAccessToken } from '@/utils/auth'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { getJmreportBaseUrl } from '@/utils/systemParam'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
import * as SupplierdeliverRequestMainApi from '@/api/wms/supplierdeliverRequestMain'
import { SupplierdeliverRequestMainRules } from '../supplierdeliverRequestMain/supplierdeliverRequestMain.data'
const { loadStart, loadDone } = usePageLoading()
//
defineOptions({ name: 'SupplierdeliverRecordWMS' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref([
...SupplierdeliverRecordMain.allSchemas.tableColumns,
...SupplierdeliverRecordDetail.allSchemas.tableMainColumns
])
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const { tableObject, tableMethods } = useTable({
getListApi: SupplierdeliverRecordDetailApi.getSupplierdeliverRecordDetailPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({ hasPermi: 'wms:supplierdeliver-record-main:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') {
//
if (tableObject.params.filters && tableObject.params.filters.length > 0) {
searchFormClick({
filters: tableObject.params.filters
})
} else {
getList()
}
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
// -
const butttondata = (row, $index) => {
const findIndex = row['masterId']
? tableObject.tableList.findIndex((item) => item['masterId'] == row['masterId'])
: -1
if (findIndex > -1 && findIndex < $index) {
return []
}
return [
defaultButtons.mainListGenerateApplicationBtn({
hasPermi: 'wms:supplierdeliver-record-main:createPurchasereceiptRequest',
hide: !row.purchasereceiptRequestFlag
}), //
defaultButtons.mainListDocumentPrintBtn({}) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'generateApplication') {
handlerCreatePurchasereceiptRequest(row.number)
} else if (val == 'documentPrint') {
//
handleDocumentPrint(row.masterId)
}
}
/** 生成采购收货申请按钮操作 */
const handlerCreatePurchasereceiptRequest = async (number: string) => {
try {
await message.confirm(t('ts.确认生成采购申请吗?'))
tableObject.loading = true
await SupplierdeliverRecordMainApi.createPurchasereceiptRequest(number)
message.success(t('ts.采购申请生成成功'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
//
const BASE_URL = getJmreportBaseUrl()
//
const documentSrc = ref(BASE_URL + '/jmreport/view/1019060741381099520?token=' + getAccessToken())
//
const documentSrc2 = ref(BASE_URL + '/jmreport/view/1019406772438372352?token=' + getAccessToken())
const handleDocumentPrint = async (id) => {
await SupplierdeliverRecordMainApi.getPoLineType(id).then(async (res) => {
if (res.isM && res.haveNOM == false) {
//
window.open(documentSrc2.value + '&id=' + id + '&type=' + 'M')
}
if (res.isM && res.haveNOM && res.noMAndItemStatus == '生准订单') {
//
window.open(documentSrc2.value + '&id=' + id )
}
if (res.isM && res.haveNOM && res.noMAndItemStatus != '生准订单') {
// M
window.open(documentSrc.value + '&id=' + id+ '&type=' + 'M')
//
window.open(documentSrc.value + '&id=' + id+ '&type=' + 'noM')
}
if (res.isM == false) {
await SupplierdeliverRecordMainApi.getItemStatus(id).then(async (res) => {
if (res) {
//
window.open(documentSrc2.value + '&id=' + id)
} else {
window.open(documentSrc.value + '&id=' + id)
}
})
}
})
}
//
const detailParenPackingRef = ref()
const { tableObject: detatableData, tableMethods: detatableMethods } = useTable({
getListApi: SupplierdeliverRecordDetailApi.queryChildPickingNumber
})
const { getList: getDetailList } = detatableMethods
//
const { wsCache } = useCache()
/** 详情操作 */
const detailRef = ref()
const openDetail = async (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache
.get(CACHE_KEY.DEPT)
.find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
//masterId
const { tableObject: requestTableObject, tableMethods: requestTableMethods } = useTable({
getListApi: SupplierdeliverRequestDetailApi.getSupplierdeliverRequestDetailPage //
})
const { getList: requestGetList } = requestTableMethods
requestTableObject.params.number = row.requestNumber
await requestGetList()
if (requestTableObject.tableList.length > 0) {
row.annexMasterId = requestTableObject.tableList[0].masterId
detailRef.value.openDetail(row, titleName, titleValue, 'recordSupplierdeliverMain')
}
}
// table
const buttondataTable = ref([
{
label: t('ts.查看其他包装规格'),
name: 'viewParentPickingNumber',
hide: false,
type: 'primary',
icon: '',
color: '',
hasPermi: '',
link: true //
}
])
//
const tableFormButton = async (val, row) => {
if (val == 'viewParentPickingNumber') {
//
detatableData.params = {
masterId: row.masterId,
parentPackingNumber: row.packingNumber
}
await getDetailList()
detailParenPackingRef.value.open('create', row, null, 'viewDetail') //
}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
loadStart()
const excelTitle = ref(route.meta.title)
const data = await SupplierdeliverRecordMainApi.exportSupplierdeliverRecordMain(
tableObject.params
)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
} catch {
} finally {
loadDone()
}
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
/** 初始化 **/
onMounted(async () => {
getList()
})
onActivated(() => {
getList()
})
</script>

1431
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordWMS/supplierdeliverRecordMain.data.ts

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