diff --git a/src/views/bookingcabin/cabinBooking/detail.vue b/src/views/bookingcabin/cabinBooking/detail.vue index c9c6dfa0..f278a5da 100644 --- a/src/views/bookingcabin/cabinBooking/detail.vue +++ b/src/views/bookingcabin/cabinBooking/detail.vue @@ -1259,7 +1259,7 @@ function handleAdd() { } function filterOption(input, option) { return ( - option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0 ); } diff --git a/src/views/operation/invoicExamine/api.js b/src/views/operation/invoicExamine/api.js new file mode 100644 index 00000000..fcb635f5 --- /dev/null +++ b/src/views/operation/invoicExamine/api.js @@ -0,0 +1,18 @@ +import { request } from '/@/utils/request' + +// 获取列表 (Auth) +export function GetList(parameter) { + return request({ + url: '/feeApi/InvoiceApplicationAudit/GetList', + method: 'post', + data: parameter, + }) +} + +export function InvoiceApplicationGet(parameter) { + return request({ + url: '/feeApi/InvoiceApplication/Get', + method: 'get', + params: parameter, + }) +} diff --git a/src/views/operation/invoicExamine/columns.tsx b/src/views/operation/invoicExamine/columns.tsx new file mode 100644 index 00000000..b2e2493b --- /dev/null +++ b/src/views/operation/invoicExamine/columns.tsx @@ -0,0 +1,193 @@ +import { ref } from 'vue' +import { BasicColumn, FormSchema } from '/@/components/Table' +import { getOptions } from '/@/hooks/dict' +export const billTypeData = [ + { value: 0, label: '未提交' }, + { value: 1, label: '提交审核' }, + { value: 2, label: '审核通过' }, + { value: 3, label: '审核驳回' }, + { value: 4, label: '已开出' }, + { value: 5, label: '部分开出' }, +] +export const searchFormSchema: FormSchema[] = [ + { + field: 'applicationNO', + label: '申请单号', + component: 'Input', + colProps: { span: 4 }, + }, + { + field: 'applicationNO', + label: '开票金额', + component: 'Input', + colProps: { span: 4 }, + }, + { + field: 'applyDate', + label: '申请日期', + component: 'RangePicker', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: { + allowClear: true, + }, + }, + { + field: 'createByName', + label: '申请人', + component: 'Input', + colProps: { span: 4 }, + }, + { + field: 'status', + label: '审核状态', + component: 'Select', + colProps: { span: 4 }, + componentProps: { + options: billTypeData, + }, + }, + +] + +//列表 +export const columns: BasicColumn[] = [ + { + title: '申请单号', + dataIndex: 'applicationNO', + width: 120, + align: 'left', + }, + { + title: '状态', + dataIndex: 'statusText', + width: 70, + align: 'left', + }, + { + title: '委托单位', + dataIndex: 'customerName', + width: 100, + align: 'left', + }, + { + title: '发票抬头', + dataIndex: 'invoiceHeader', + width: 100, + align: 'left', + }, + { + title: '发票币别', + dataIndex: 'currency', + width: 100, + align: 'left', + }, + { + title: '申请方式', + dataIndex: 'currency', + width: 100, + align: 'left', + }, + { + title: '原币金额', + dataIndex: 'originalAmount', + width: 100, + align: 'left', + }, + { + title: '申请人', + dataIndex: 'createByName', + width: 100, + align: 'left', + }, + { + title: '申请开票日期', + dataIndex: 'applyDate', + width: 100, + align: 'left', + }, + { + title: '申请类型', + dataIndex: 'orgName', + width: 100, + align: 'left', + }, + { + title: '申请时间', + dataIndex: 'orgName', + width: 100, + align: 'left', + }, + { + title: '开票税率', + dataIndex: 'taxRate', + width: 100, + align: 'left', + }, + { + title: '发票号', + dataIndex: 'invoiceNO', + width: 100, + align: 'left', + }, +] + + +//列表 +export const detailColumns: BasicColumn[] = [ + { + title: '货物或业务应税劳动名称', + dataIndex: 'name', + width: 120, + align: 'left', + }, + { + title: '规格型号', + dataIndex: 'specification', + width: 70, + align: 'left', + }, + { + title: '单位', + dataIndex: 'unit', + width: 100, + align: 'left', + }, + { + title: '数量', + dataIndex: 'quantity', + width: 100, + align: 'left', + }, + { + title: '含税单价', + dataIndex: 'taxUnitPrice', + width: 100, + align: 'left', + }, + { + title: '单价', + dataIndex: 'unitPrice', + width: 100, + align: 'left', + }, + { + title: '金额', + dataIndex: 'amount', + width: 100, + align: 'left', + }, + { + title: '税率', + dataIndex: 'taxRate', + width: 100, + align: 'left', + }, + { + title: '税额', + dataIndex: 'taxAmount', + width: 100, + align: 'left', + } +] diff --git a/src/views/operation/invoicExamine/index.vue b/src/views/operation/invoicExamine/index.vue new file mode 100644 index 00000000..c966d104 --- /dev/null +++ b/src/views/operation/invoicExamine/index.vue @@ -0,0 +1,204 @@ + + + diff --git a/src/views/operation/invoiceApply/detail/InvoiceDetails.vue b/src/views/operation/invoiceApply/detail/InvoiceDetails.vue index 8cf44bcb..5e0c933b 100644 --- a/src/views/operation/invoiceApply/detail/InvoiceDetails.vue +++ b/src/views/operation/invoiceApply/detail/InvoiceDetails.vue @@ -3,7 +3,7 @@
- @@ -41,7 +41,8 @@
申请开票明细
- + 原币申请 {{ item.applyAmount }} @@ -50,8 +51,9 @@
- 折算人民币申请 + 折算人民币申请 {{ totalRmb }} RMB
@@ -208,7 +210,6 @@ const [registerTable, { getForm, setSelectedRowKeys, getSelectRows, setProps, ge maxHeight: '600', pagination: true, striped: true, - rowKey: 'id', bordered: true, indexColumnProps: { width: 60, @@ -237,7 +238,7 @@ const exchangeFlag = ref(false) const loading = ref(false) const form = ref({ isYB: true, - isRMB:false + isRMB: false }) as any function handleChangeApply(e) { form.value.isRMB = !e.target.checked @@ -248,6 +249,8 @@ const exchangeData = ref({}) as any // 转换汇率 如果选择的费用明细里有外币 并且选择了人民币结算就弹出汇率 function handleChangeApply1(e) { form.value.isYB = !e.target.checked +} +function changeApply() { const arr = getSelectRowsFee() const exchangeArr = [] as any if (arr.length > 0) { @@ -284,9 +287,6 @@ function handleChangeApply1(e) { totalRmb.value = total } } - - - } const totalRmb = ref(0) @@ -308,13 +308,25 @@ function handleSureExhange() { } }) totalRmb.value = total - exchangeFlag.value = false + setTimeout(() => { + arr.forEach(item => { + item.originalCurrency = item.currency + item.currency = 'RMB' + item.originalAmount = item.applyAmount + item.applyAmount = Number((Number(item.applyAmount) * Number(item.exchangeRate)).toFixed(2)) + }) + emits('updateList', arr, 'isRMB') + open.value = false + exchangeFlag.value = false + }, 100) + } function handleClick(record, index) { setSelectedRowKeys([record.id]) const data = { id: record.id, - businessType: record.businessType + businessType: record.businessType, + customerId:record.customerId } loading.value = true InvoiceApplicationGetFees([data]).then(res => { @@ -347,11 +359,11 @@ function init(data) { customerId: customerIdP.value }) } - if(data.isRMB){ + if (data.isRMB) { form.value.isRMB = true form.value.isYB = false } - if(data.isYB){ + if (data.isYB) { form.value.isYB = true form.value.isRMB = false } @@ -395,19 +407,11 @@ function handleAddDetial() { }) } if (form.value.isRMB) { - arr.forEach(item => { - item.originalCurrency = item.currency - item.currency = 'RMB' - item.originalAmount = item.applyAmount - item.applyAmount = Number((Number(item.applyAmount) * Number(item.exchangeRate)).toFixed(2)) - }) - } - open.value = false - if (form.value.isRMB) { - emits('updateList', arr, 'isRMB') + changeApply() } if (form.value.isYB) { emits('updateList', arr, 'isYB') + open.value = false } } const amountArr = ref([]) as any @@ -506,12 +510,12 @@ function addDetailed() { }); }); return Promise.all(promises).then(() => { - emits('addLeft', arrRight, queryDataStr, exchangarr,'isRMB') + emits('addLeft', arrRight, queryDataStr, exchangarr, 'isRMB') open.value = false setLoading(false) }); } else { - emits('addLeft', arrRight, queryDataStr, [],'isRMB') + emits('addLeft', arrRight, queryDataStr, [], 'isRMB') open.value = false setLoading(false) } @@ -520,7 +524,7 @@ function addDetailed() { } if (arrRight.length > 0 && form.value.isYB) { - emits('addLeft', arrRight, queryDataStr, [],'isYB') + emits('addLeft', arrRight, queryDataStr, [], 'isYB') open.value = false setLoading(false) } @@ -596,6 +600,7 @@ defineExpose({ init, changeCustIn }) font-weight: bold; margin: 0 10px; } + /deep/ .ant-checkbox-wrapper-checked .ant-checkbox-inner { background-color: #257afa; border-color: #257afa; diff --git a/src/views/operation/invoiceApply/detail/index.vue b/src/views/operation/invoiceApply/detail/index.vue index 9dcb90ce..1da9dec1 100644 --- a/src/views/operation/invoiceApply/detail/index.vue +++ b/src/views/operation/invoiceApply/detail/index.vue @@ -989,7 +989,8 @@ function addLeftSave(arr, query, exchang, type) { arr.forEach(item => { itemList.push({ id: item.id, - businessType: item.businessType + businessType: item.businessType, + customerId:item.customerId }) }) const data = { diff --git a/src/views/operation/seaexport/modules/importBc.vue b/src/views/operation/seaexport/modules/importBc.vue index c5a615b7..caa7be6e 100644 --- a/src/views/operation/seaexport/modules/importBc.vue +++ b/src/views/operation/seaexport/modules/importBc.vue @@ -486,7 +486,7 @@ }, filterOption(input, option) { return ( - option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0 ) }, handleYardChange(index) { diff --git a/src/views/system/datarule/index.vue b/src/views/system/datarule/index.vue index 923ee0ff..07599623 100644 --- a/src/views/system/datarule/index.vue +++ b/src/views/system/datarule/index.vue @@ -30,17 +30,21 @@ 应用操作范围到当前页 @@ -75,7 +79,7 @@ const { createMessage } = useMessage() // import { columns, searchFormSchema } from './columns' const treeData = ref([]) const treeDataCopy = ref([]) -const menuTree = ref([]) +const menuTree = ref([]) as any const openFlag = ref(false) onMounted(() => { GetOrgUserTree().then(res => { @@ -117,7 +121,7 @@ function handleCopy() { } copyLoad.value = true CopyDataRuleScope(data).then(res => { - if(res.succeeded){ + if (res.succeeded) { createMessage.success('复制成功') } copyLoad.value = false @@ -170,6 +174,11 @@ function handleSelect(selectedKeys: any, info: any) { menuLoad.value = true GetClientUserPermissions({ id: info.node.value }).then(res => { menuTree.value = res.data + menuTree.value.unshift({ + "id": "0", + "parentId": "0", + "name": "全部", + }) menuLoad.value = false }).catch(err => { menuLoad.value = false @@ -179,7 +188,7 @@ function handleSelect(selectedKeys: any, info: any) { const lookSelect = ref([]) as any const actionSelect = ref([]) as any function handleSelectMenu(selectedKeys: any, info: any) { - if (info.node.children == null || info.node.children.length == 0) { + if ((info.node.children == null || info.node.children.length == 0) && info.node.parentId != 0) { const data = { permissionId: info.node.parentId, userId: userId.value @@ -193,20 +202,35 @@ function handleSelectMenu(selectedKeys: any, info: any) { }).catch(err => { setLoading(false) }) - GetDataRuleTemplateSelectList({ id: info.node.parentId, ruleType: 'visible' }).then(res => { - lookSelect.value = res.data - }) - GetDataRuleTemplateSelectList({ id: info.node.parentId, ruleType: 'operate' }).then(res => { - actionSelect.value = res.data - }) + // GetDataRuleTemplateSelectList({ id: info.node.parentId, ruleType: 'visible' }).then(res => { + // lookSelect.value = res.data + // }) + // GetDataRuleTemplateSelectList({ id: info.node.parentId, ruleType: 'operate' }).then(res => { + // actionSelect.value = res.data + // }) } + if (info.node.parentId == 0) { + const data = { + permissionId: 0, + userId: userId.value + } + setLoading(true) + GetCodeDataRuleList(data).then(res => { + if (res.succeeded) { + setTableData(res.data) + } + setLoading(false) + }).catch(err => { + setLoading(false) + }) + } } function openRule() { openFlag.value = true } const columns = [ - { dataIndex: 'templateName', width: 100, title: '权限模板类型' }, + { dataIndex: 'permissioName', width: 100, title: '权限模板类型' }, { dataIndex: 'description', width: 100, title: '权限描述' }, { dataIndex: 'note', width: 100, title: '备注' }, { dataIndex: 'visibleRuleScopeName', width: 100, title: '可视范围' }, @@ -225,17 +249,28 @@ const [registerTable, { reload, setLoading, setTableData, getSelectRows, setProp canResize: true, resizeHeightOffset: 35, }) -function handleChangeLook(val, row) { +function handleChangeLook(val, row, type) { const data = {} as any - lookSelect.value.forEach(item => { - if (item.id == val) { - data.templateId = item.id - data.ruleType = item.ruleType - data.ruleScope = item.ruleScope - data.ruleScopeName = item.ruleScopeName - } - }) - data.id = row.id + if (type == 'look') { + row.visibleTemplates.forEach(item => { + if (item.id == val) { + data.templateId = item.id + data.ruleType = item.ruleType + data.ruleScope = item.ruleScope + data.ruleScopeName = item.ruleScopeName + } + }) + } else { + row.operateTemplates.forEach(item => { + if (item.id == val) { + data.templateId = item.id + data.ruleType = item.ruleType + data.ruleScope = item.ruleScope + data.ruleScopeName = item.ruleScopeName + } + }) + } + data.id = row.id ? row.id : 0 setLoading(true) AssignDataRuleScope(data).then(res => { if (res.succeeded) { diff --git a/src/views/taskmanage/index.vue b/src/views/taskmanage/index.vue index 8ce735b7..5cd5bc2b 100644 --- a/src/views/taskmanage/index.vue +++ b/src/views/taskmanage/index.vue @@ -371,7 +371,7 @@ :filter-option="filterOption" v-model:value="UserId" > - + {{ item.label }} @@ -762,7 +762,7 @@ } function filterOption(input, option) { - return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 } // 点击顶层切换 function changeTopLevel() {