更新舱位

szh-new
sunzehua 3 months ago
commit 5dd9869a0b

@ -10,7 +10,7 @@
/> />
<title><%= title %></title> <title><%= title %></title>
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3756681_j0sw6eo6ae.css" /> <link rel="stylesheet" href="//at.alicdn.com/t/c/font_3756681_39sb3qu5lct.css" />
</head> </head>
<body> <body>
<script> <script>

@ -169,7 +169,6 @@
source: async (query, process) => { source: async (query, process) => {
const res = feeDict.value.length ? feeDict.value : (await GetFeeCodeSelectList())?.data const res = feeDict.value.length ? feeDict.value : (await GetFeeCodeSelectList())?.data
if (!feeDict.value.length) feeDict.value = res if (!feeDict.value.length) feeDict.value = res
console.log(res)
const dict = res.map((res) => { const dict = res.map((res) => {
return res.code + '-' + res.name return res.code + '-' + res.name
}) })

@ -68,6 +68,7 @@
padding: 0px; padding: 0px;
} }
} }
.ant-table-thead { .ant-table-thead {
th { th {
background-color: rgba(240, 244, 250, 1) !important; background-color: rgba(240, 244, 250, 1) !important;
@ -184,7 +185,6 @@
.ht_master { .ht_master {
.wtHolder { .wtHolder {
min-height: 200px!important; min-height: 200px!important;
overflow: visible!important;
} }
} }
} }

@ -79,7 +79,7 @@ getDictOption('seaexport_ctn_map').then((res) => {
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{ {
field: 'customerNo:mblno:hblno', field: 'customerNo:mblno:hblno:bookingNo:contractNo:customerNum',
label: '编号查询', label: '编号查询',
component: 'Input', component: 'Input',
// defaultValue: '', // defaultValue: '',
@ -307,7 +307,7 @@ export const searchFormSchema: FormSchema[] = [
}, },
{ {
field: 'contractNo', field: 'contractNo',
label: '运费协议号', label: '号',
component: 'Input', component: 'Input',
show: false show: false
}, },
@ -553,7 +553,13 @@ export const columns: BasicColumn[] = [
}, },
{ {
dataIndex: 'contractNo', dataIndex: 'contractNo',
title: '运费协议号', title: '约号',
sorter: true,
width: 150,
},
{
dataIndex: 'customerNum',
title: '客户编号',
sorter: true, sorter: true,
width: 150, width: 150,
}, },
@ -1469,7 +1475,7 @@ export const BatchModificationFormSchema: FormSchema[] = [
}, },
{ {
field: 'contractNo', field: 'contractNo',
label: '运费协议号', label: '号',
component: 'Input', component: 'Input',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,

@ -43,7 +43,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, nextTick, defineProps, defineComponent, onMounted, defineExpose } from 'vue' import { ref, nextTick, defineProps, defineComponent, onMounted, defineExpose } from 'vue'
import { HotTable } from '@handsontable/vue3' import { HotTable } from '@handsontable/vue3'
import { registerAllModules } from 'handsontable/registry'
import 'handsontable/dist/handsontable.full.min.css' import 'handsontable/dist/handsontable.full.min.css'
import { GetOpCtnList } from '/@/views/operation/seaexport/api/BookingLedger' import { GetOpCtnList } from '/@/views/operation/seaexport/api/BookingLedger'
import { GetCtnSelectList, GetPackageSelectList } from '/@/api/common' import { GetCtnSelectList, GetPackageSelectList } from '/@/api/common'

@ -98,10 +98,14 @@
:id="id" :id="id"
businessType="1" businessType="1"
> >
<span>
<a-button v-repeat v-if="route.query.status != 'WAIT_ORDER_AUDIT'" @click="completeTask" type="primary"> <a-button v-repeat class="mr10" v-if="route.query.source == 'Create' && route.query.status == 'WAIT_ORDER_AUDIT'" @click="save" type="primary">
{{ completeText }} 保存
</a-button> </a-button>
<a-button v-repeat v-if="route.query.status != 'WAIT_ORDER_AUDIT'" @click="completeTask" type="primary">
{{ completeText }}
</a-button>
</span>
</ApproveBtns> </ApproveBtns>
</div> </div>
</div> </div>
@ -120,7 +124,7 @@
</transition> </transition>
<transition name="slide"> <transition name="slide">
<rightContent <rightContent
v-if="id" v-if="id && !isOpenSet"
class="right-content" class="right-content"
ref="RefrightContent" ref="RefrightContent"
:id="id" :id="id"
@ -213,6 +217,7 @@
import { useMultipleTabStore } from '/@/store/modules/multipleTab' import { useMultipleTabStore } from '/@/store/modules/multipleTab'
import { Divider } from 'ant-design-vue' import { Divider } from 'ant-design-vue'
import { fastCall } from 'handsontable/helpers'
const go = useGo() const go = useGo()
// loading // loading
@ -754,7 +759,6 @@
} }
// //
const approveDc = (remark) => { const approveDc = (remark) => {
save()
const postData = { const postData = {
result: remark ? 2 : 1, result: remark ? 2 : 1,
ids: [id.value], ids: [id.value],

@ -5,7 +5,7 @@ import { ref, unref } from 'vue'
import { BasicColumn, FormSchema } from '/@/components/Table' import { BasicColumn, FormSchema } from '/@/components/Table'
import { getDictOption } from '/@/utils/dictUtil' import { getDictOption } from '/@/utils/dictUtil'
// 下拉框数据接口 // 下拉框数据接口
import { GetClientListByCode, GetCarrierSelectList, GetControllerClientList } from '/@/api/common' import { GetClientListByCode, GetCarrierSelectList, GetControllerClientList, getOrgList } from '/@/api/common'
import { import {
GetPackageSelectList, GetPackageSelectList,
GetOrderContactListByClientId, GetOrderContactListByClientId,
@ -23,7 +23,8 @@ import {
GetSaleList, GetSaleList,
GetCustomerServiceList, GetCustomerServiceList,
GetVouchingClerkList, GetVouchingClerkList,
GetLaneUserList GetLaneUserList,
GetClientSourceSelectList
} from '/@/views/operation/seaexport/api/BookingLedger' } from '/@/views/operation/seaexport/api/BookingLedger'
import { useOptionsStore } from '/@/store/modules/options' import { useOptionsStore } from '/@/store/modules/options'
const optionsStore = useOptionsStore() const optionsStore = useOptionsStore()
@ -56,15 +57,11 @@ const FntradeTerm = ref([])
getDictOption('packing_type').then((res) => { getDictOption('packing_type').then((res) => {
FntradeTerm.value = res FntradeTerm.value = res
}) })
// 单提份数字典 // 单提份数/副本份数字典
const FnnoBill = ref([]) const FnnoBill = ref([])
getDictOption('no_bill').then((res) => { getDictOption('no_bill').then((res) => {
FnnoBill.value = res FnnoBill.value = res
}) console.log(FnnoBill.value)
// 副本份数字典
const FncopyNoBill = ref([])
getDictOption('copy_no_bill').then((res) => {
FncopyNoBill.value = res
}) })
// 销售字典 // 销售字典
const salerCodeDict = ref([]) const salerCodeDict = ref([])
@ -209,11 +206,13 @@ export const basicInfoFormSchema: FormSchema[] = [
mode: 'SECRET_COMBOBOX_MODE_DO_NOT_USE', mode: 'SECRET_COMBOBOX_MODE_DO_NOT_USE',
onChange: (e, obj) => { onChange: (e, obj) => {
if (e && obj) { if (e && obj) {
cno.value = e cno.value = obj.contractNote
} }
}, },
onBlur: () => { onBlur: () => {
formActionType ? formActionType.linkageForm(cno) : null if (cno.value) {
formActionType ? formActionType.linkageForm(cno) : null
}
} }
} }
} }
@ -1303,7 +1302,7 @@ export const noteFormSchema: FormSchema[] = [
component: 'Select', component: 'Select',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
// defaultValue: '', defaultValue: null,
colProps: { span: 5 }, colProps: { span: 5 },
componentProps: { componentProps: {
options: FnnoBill, options: FnnoBill,
@ -1320,10 +1319,10 @@ export const noteFormSchema: FormSchema[] = [
component: 'Select', component: 'Select',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
// defaultValue: '', defaultValue: null,
colProps: { span: 5 }, colProps: { span: 5 },
componentProps: { componentProps: {
options: FncopyNoBill, options: FnnoBill,
allowClear: true, allowClear: true,
showSearch: true, showSearch: true,
filterOption: (input: string, option: any) => { filterOption: (input: string, option: any) => {
@ -1722,11 +1721,13 @@ export const cargoInfoFormSchema2: FormSchema[] = [
field: 'goodsName', field: 'goodsName',
label: '品名', label: '品名',
component: 'ApiSelect', component: 'ApiSelect',
labelSlot: 'goodsName',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
show: ({ values }) => { show: ({ values }) => {
return !values.isPreOrder return !values.isPreOrder
}, },
defaultValue: null,
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
@ -2018,8 +2019,6 @@ export const otherInfoFormSchema: FormSchema[] = [
componentProps: ({ formModel, formActionType }) => { componentProps: ({ formModel, formActionType }) => {
return { return {
api: GetSaleList, api: GetSaleList,
allowClear: true,
showSearch: true,
labelField: 'pinYinCode', labelField: 'pinYinCode',
showName: 'userName', showName: 'userName',
valueField: 'userName', valueField: 'userName',
@ -2027,89 +2026,18 @@ export const otherInfoFormSchema: FormSchema[] = [
resultField: 'data', resultField: 'data',
onChange: async (e, obj) => { onChange: async (e, obj) => {
if (e && obj) { if (e && obj) {
const saleDeptIdArr: any = []
formModel.saleId = obj.id formModel.saleId = obj.id
formModel.saleOrgId = obj.defaultOrgId formModel.saleOrgId = obj.defaultOrgId
formModel.saleDeptId = obj.deptId formModel.saleDeptId = obj.deptId
if (formActionType) { formModel.saleDeptName = obj.deptName
const saleDeptDict: any = [] formModel.saleOrgName = obj.defaultOrgName
obj.saleOrgList.forEach((item) => { }
saleDeptDict.push({ label: item.orgName, value: item.orgId }) if (!e && !obj) {
})
if (obj.defaultOrgId) {
await GetDeptList({ orgId: obj.defaultOrgId }).then((res) => {
res.data.forEach((item) => {
saleDeptIdArr.push({ label: item.orgName, value: item.id })
})
})
}
const { updateSchema } = formActionType
updateSchema([
{
label: '所属分部',
field: 'saleOrgId',
component: 'Select',
required: false,
dynamicDisabled: false,
calssName: 'saleOrgId',
// defaultValue: '',
colProps: { span: 12 },
componentProps: {
allowClear: true,
options: saleDeptDict,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
formModel.saleDeptId = ''
GetDeptList({ orgId: e }).then((res) => {
let Arr: any = []
res.data.forEach((item) => {
Arr.push({ label: item.orgName, value: item.id })
})
updateSchema({
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 12 },
componentProps: {
allowClear: true,
options: Arr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
}
})
})
}
}
},
{
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 12 },
componentProps: {
allowClear: true,
options: saleDeptIdArr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
},
])
}
} else {
formModel.saleId = null formModel.saleId = null
formModel.saleOrgId = null
formModel.saleDeptId = null
formModel.saleDeptName = null
formModel.saleOrgName = null
} }
} }
} }
@ -2339,38 +2267,38 @@ export const otherInfoFormSchema: FormSchema[] = [
{ {
label: '', label: '',
component: 'Input', component: 'Input',
field: 'sourceName', field: 'sourceId',
show: false show: false
}, },
{ {
label: '业务来源', label: '业务来源',
field: 'sourceId', field: 'sourceName',
component: 'ApiSelect', component: 'ApiSelect',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
option: optionsStore.getOptionsByCode('GetClientSourceSelectList'), api: GetClientSourceSelectList,
labelField: 'sourceName', labelField: 'sourceName',
valueField: 'id', valueField: 'sourceName',
filterOption: (input: string, option: any) => { immediate: false,
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 resultField: 'data',
},
onChange: async (e, obj) => { onChange: async (e, obj) => {
console.log(obj)
if (e && obj) { if (e && obj) {
formModel.sourceCode = obj.sourceCode formModel.sourceCode = obj.sourceCode
formModel.sourceCode = obj.sourceName formModel.sourceId = obj.id
} }
if (!e && !obj) { if (!e && !obj) {
formModel.sourceCode = null formModel.sourceCode = null
formModel.sourceCode = null formModel.sourceId = null
} }
formModel.sourceDetailId = null formModel.sourceDetailId = null
formModel.sourceDetailName = null formModel.sourceDetailName = null
}, }
} }
}, }
}, },
{ {
label: '来源明细', label: '来源明细',
@ -2424,49 +2352,47 @@ export const otherInfoFormSchema: FormSchema[] = [
colProps: { span: 12 } colProps: { span: 12 }
}, },
{ {
label: '所属分部', label: '',
field: 'saleOrgId', field: 'saleOrgId',
component: 'Input',
show: false,
},
{
label: '所属分部',
field: 'saleOrgName',
component: 'ApiSelect', component: 'ApiSelect',
required: false, required: false,
colProps: { span: 12 }, colProps: { span: 12 },
calssName: 'saleOrgId', calssName: 'saleOrgId',
dynamicDisabled: ({ values }) => {
return !values.saleId
},
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
option: optionsStore.getOptionsByCode('GetOrgList'), api: getOrgList,
allowClear: true,
showSearch: true,
labelField: 'label', labelField: 'label',
valueField: 'value', valueField: 'value',
filterOption: (input: string, option: any) => { resultField: 'data',
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 immediate: false,
},
onChange: (e, obj) => { onChange: (e, obj) => {
if (obj) { console.log(obj)
if (e && obj) {
formModel.saleOrgName = obj.label formModel.saleOrgName = obj.label
} else { formModel.saleOrgId = obj.id
formModel.saleOrgName = '' }
if (!e && !obj) {
formModel.saleOrgName = null
formModel.saleOrgId = null
} }
} }
} }
} }
}, },
{ {
field: 'saleDeptName', field: 'saleDeptId',
label: '', label: '',
component: 'Input', component: 'Input',
show: false show: false
}, },
{ {
field: 'saleDeptName', field: 'saleDeptName',
label: '',
component: 'Input',
show: false
},
{
field: 'saleDeptId',
label: '所属部门', label: '所属部门',
component: 'ApiSelect', component: 'ApiSelect',
required: false, required: false,
@ -2474,19 +2400,21 @@ export const otherInfoFormSchema: FormSchema[] = [
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
option: optionsStore.getOptionsByCode('GetDeptList'), api: GetDeptList,
allowClear: true, params: {
showSearch: true, orgId: formModel.saleOrgId
labelField: 'orgName',
valueField: 'id',
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}, },
labelField: 'orgName',
valueField: 'orgName',
resultField: 'data',
immediate: false,
onChange: (e, obj) => { onChange: (e, obj) => {
if (obj) { console.log(obj)
formModel.saleDeptName = obj.label if (e && obj) {
} else { formModel.saleDeptId = obj.id
formModel.saleDeptName = '' }
if (!e && !obj) {
formModel.saleDeptId = null
} }
} }
} }

@ -212,7 +212,6 @@
// 5. // 5.
// 6. // 6.
const linkageForm = async (item) => { const linkageForm = async (item) => {
console.log(item)
if (item.key == 'contractNo') { if (item.key == 'contractNo') {
// //
emitter.emit('seaAddNotes', item.value) emitter.emit('seaAddNotes', item.value)

@ -36,7 +36,11 @@
<BasicForm @register="registerForm1" class="goods-intro"/> <BasicForm @register="registerForm1" class="goods-intro"/>
</a-col> </a-col>
<a-col :span="9"> <a-col :span="9">
<BasicForm @register="registerForm2" @submit="submit" /> <BasicForm @register="registerForm2" @submit="submit">
<template #goodsName="{ model }">
<span class="iconfont icon-jichupeizhi"></span>
</template>
</BasicForm>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
@ -401,27 +405,27 @@
// //
const source = ref(route.query.source || 'edit') const source = ref(route.query.source || 'edit')
onMounted(() => { onMounted(() => {
if (source.value != 'edit') { // if (source.value != 'edit') {
cargoInfoFormSchema1.forEach(item => { // cargoInfoFormSchema1.forEach(item => {
item.dynamicDisabled = true // item.dynamicDisabled = true
}) // })
cargoInfoFormSchema2.forEach(item => { // cargoInfoFormSchema2.forEach(item => {
item.dynamicDisabled = true // item.dynamicDisabled = true
}) // })
cargoInfoFormSchema3.forEach(item => { // cargoInfoFormSchema3.forEach(item => {
item.dynamicDisabled = true // item.dynamicDisabled = true
}) // })
} else { // } else {
cargoInfoFormSchema1.forEach(item => { // cargoInfoFormSchema1.forEach(item => {
item.dynamicDisabled = false // item.dynamicDisabled = false
}) // })
cargoInfoFormSchema2.forEach(item => { // cargoInfoFormSchema2.forEach(item => {
item.dynamicDisabled = false // item.dynamicDisabled = false
}) // })
cargoInfoFormSchema3.forEach(item => { // cargoInfoFormSchema3.forEach(item => {
item.dynamicDisabled = false // item.dynamicDisabled = false
}) // })
} // }
}) })
function SetTOTALNO(SS) { function SetTOTALNO(SS) {
let DSS = SS.toString() let DSS = SS.toString()
@ -650,6 +654,11 @@
height: 130px; height: 130px;
} }
} }
.icon-jichupeizhi {
float: right;
color: #257AFA;
cursor: pointer;
}
.icon-30jiantouxiangxiafill { .icon-30jiantouxiangxiafill {
margin-left: 3px; margin-left: 3px;
} }

@ -1012,6 +1012,7 @@
}) })
list.value = res list.value = res
hotmain.value.hotInstance.loadData(res) hotmain.value.hotInstance.loadData(res)
computing()
} }
const moreVisible = ref(false) const moreVisible = ref(false)
// //
@ -1307,13 +1308,13 @@
}, },
]) ])
init() // init()
function init() { // function init() {
GetCtnSelectList().then((res) => { // GetCtnSelectList().then((res) => {
ctnDict.value = res.data // ctnDict.value = res.data
}) // })
tableLoaded.value = true // tableLoaded.value = true
} // }
function changeSelectedRowKeys(keys) { function changeSelectedRowKeys(keys) {
selectArr.value = keys selectArr.value = keys
checkboxOption.value.selectedRowKeys = keys checkboxOption.value.selectedRowKeys = keys
@ -1358,6 +1359,12 @@
const data = JSON.parse(res.data) const data = JSON.parse(res.data)
// //
if (data.length) { if (data.length) {
// cntrNo
for (var i = 0; i < list.value.length; i++) {
if (!list.value[i].cntrNo) {
list.value.splice(i, 1)
}
}
// //
for (var i = 0; i < data.length; i++) { for (var i = 0; i < data.length; i++) {
if (list.value.length) { if (list.value.length) {
@ -1774,6 +1781,7 @@
} }
// //
if (changes[0][1] === 'ctnNum') { if (changes[0][1] === 'ctnNum') {
console.log(ctnDict.value)
let RData = 0 let RData = 0
list.value.forEach((e) => { list.value.forEach((e) => {
if (e.ctnNum) { if (e.ctnNum) {
@ -1781,6 +1789,8 @@
} }
}) })
let teu = 0 let teu = 0
const res = ctnDict.value.length ? ctnDict.value : (await GetCtnSelectList())?.data
ctnDict.value = res
ctnDict.value.forEach((item) => { ctnDict.value.forEach((item) => {
if (item.ctnName == list.value[changes[0][0]]['ctn']) { if (item.ctnName == list.value[changes[0][0]]['ctn']) {
teu = item.teu teu = item.teu
@ -2004,7 +2014,19 @@
} }
} }
} }
</style>
<style>
</style> </style>
<style lang='less'>
.goods-table {
.handsontable {
.wtHider {
max-height: 240px!important;
min-height: 130px;
}
.htCheckboxRendererInput {
position: relative;
z-index: 1111;
}
}
}
</style>

@ -317,15 +317,6 @@ const linkageForm = async (val) => {
orderList.value[editIndex.value].hblno = val orderList.value[editIndex.value].hblno = val
} }
function close() { function close() {
openPreOrderShow.value = false openPreOrderShow.value = false
} }
@ -1017,6 +1008,9 @@ defineExpose({
.right { .right {
width: calc(100% - 320px); width: calc(100% - 320px);
height: 80vh;
overflow-y: auto;
overflow-x: hidden;
} }
.left-title { .left-title {

@ -211,7 +211,10 @@
<div style="max-height: 182px; overflow: auto;"> <div style="max-height: 182px; overflow: auto;">
<div class="remark" v-for="(remark, rindex) in RemarkList" :key="rindex"> <div class="remark" v-for="(remark, rindex) in RemarkList" :key="rindex">
<div class="remark-main"> <div class="remark-main">
<div class="top"><i class="iconfont icon-yuandian"></i>{{ remark.remark }}</div> <div class="top flex">
<i class="iconfont icon-yuandian"></i>
<div v-html="remark.remark"></div>
</div>
</div> </div>
<div class="remark-btn"> <div class="remark-btn">
<i class="iconfont icon-bianji1 mr15" @click="editRemark(remark)"></i> <i class="iconfont icon-bianji1 mr15" @click="editRemark(remark)"></i>
@ -569,8 +572,12 @@
function Getremark() { function Getremark() {
remarkSpinning.value = true remarkSpinning.value = true
GetSeaExportRemarkList({ id: props.id }).then((res) => { GetSeaExportRemarkList({ id: props.id }).then((res) => {
const { data } = res
remarkSpinning.value = false remarkSpinning.value = false
RemarkList.value = res.data data.forEach(item => {
if (item.remark) item.remark = item.remark.replace(/\n/g,'<br/>')
})
RemarkList.value = data
}) })
} }
// //
@ -994,6 +1001,7 @@
} }
onMounted(() => { onMounted(() => {
emitter.on('seaAddNotes', (v) => { emitter.on('seaAddNotes', (v) => {
console.log(v)
if (!props.id) return if (!props.id) return
if (RemarkList) { if (RemarkList) {
for (var i = 0; i < RemarkList.value.length; i++) { for (var i = 0; i < RemarkList.value.length; i++) {
@ -1002,16 +1010,17 @@
} }
} }
} }
if (!v) return
EditSeaExportRemark({ EditSeaExportRemark({
id: editRemarkVal.value ? editRemarkVal.value.id : 0, id: editRemarkVal.value ? editRemarkVal.value.id : 0,
pId: props.id, pId: props.id,
remark: v, remark: v,
}) })
.then((res) => { .then((res) => {
if (res.succeeded) { if (res.succeeded) {
Getremark() Getremark()
} }
}) })
}) })
}) })
defineExpose({ defineExpose({
@ -1029,6 +1038,9 @@
cursor: pointer; cursor: pointer;
} }
} }
.top {
justify-content: flex-start;
}
position: relative; position: relative;
top: -40px; top: -40px;
background: #ffffff; background: #ffffff;

@ -377,7 +377,7 @@ const calcColumns = [
}, },
] ]
// //
const calcData = ref([]) const calcData = ref([{}])
// //
const [registerModal, { openModal }] = useModal() const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, setLoading, getSelectRows }] = useTable({ const [registerTable, { reload, getForm, setLoading, getSelectRows }] = useTable({
@ -613,6 +613,11 @@ onMounted(() => {
color: #257afa; color: #257afa;
cursor: pointer; cursor: pointer;
} }
.ds-table {
.ant-table-body {
min-height: calc(100vh - 310px);
}
}
} }
.compareIcon { .compareIcon {

@ -391,6 +391,12 @@ export const formSchema: FormSchema[] = [
} }
}, },
}, },
{
field: 'defaultOrgName',
label: '',
component: 'Input',
show: false
},
{ {
field: 'defaultOrgId', field: 'defaultOrgId',
label: '默认机构', label: '默认机构',
@ -398,7 +404,7 @@ export const formSchema: FormSchema[] = [
component: 'Select', component: 'Select',
// defaultValue: '', // defaultValue: '',
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: ({ formActionType }) => { componentProps: ({ formModel, formActionType }) => {
return { return {
options: selectOrgList.value || [], options: selectOrgList.value || [],
resultField: 'data', resultField: 'data',
@ -406,7 +412,7 @@ export const formSchema: FormSchema[] = [
filterOption: (input: string, option: any) => { filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}, },
onChange: async (e: ChangeEvent) => { onChange: async (e, obj) => {
const res: API.DataResult = await getDeptList({ orgId: e }) const res: API.DataResult = await getDeptList({ orgId: e })
if (res.succeeded) { if (res.succeeded) {
selectDeptList.value = [] selectDeptList.value = []
@ -414,6 +420,12 @@ export const formSchema: FormSchema[] = [
selectDeptList.value.push({ label: e.orgName, value: e.id }) selectDeptList.value.push({ label: e.orgName, value: e.id })
}) })
} }
if (e && obj) {
formModel.defaultOrgName = obj.label
}
if (!e && !obj) {
formModel.defaultOrgName = null
}
if (formActionType) { if (formActionType) {
formActionType.setFieldsValue({ formActionType.setFieldsValue({
deptId: '', deptId: '',
@ -423,18 +435,34 @@ export const formSchema: FormSchema[] = [
} }
}, },
}, },
{
field: 'deptName',
label: '',
component: 'Input',
show: false
},
{ {
field: 'deptId', field: 'deptId',
label: '默认部门', label: '默认部门',
component: 'Select', component: 'Select',
// defaultValue: '', // defaultValue: '',
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: { componentProps: ({ formModel }) => {
options: selectDeptList, return {
allowClear: true, options: selectDeptList,
showSearch: true, allowClear: true,
filterOption: (input: string, option: any) => { showSearch: true,
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
if (e && obj) {
formModel.deptName = obj.label
}
if (!e && !obj) {
formModel.deptName = null
}
}
} }
}, },
dynamicDisabled: ({ values }) => { dynamicDisabled: ({ values }) => {

Loading…
Cancel
Save