Commit 41c55278 authored by 牛虎林's avatar 牛虎林

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

parents 079382aa e813db50
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
} }
}, },
"dependencies": { "dependencies": {
"moment": "2.30.1",
"@ant-design/icons-vue": "^7.0.1", "@ant-design/icons-vue": "^7.0.1",
"@iconify/iconify": "^3.1.1", "@iconify/iconify": "^3.1.1",
"@logicflow/core": "^1.2.26", "@logicflow/core": "^1.2.26",
......
...@@ -71,6 +71,9 @@ importers: ...@@ -71,6 +71,9 @@ importers:
mockjs: mockjs:
specifier: ^1.1.0 specifier: ^1.1.0
version: 1.1.0 version: 1.1.0
moment:
specifier: 2.30.1
version: 2.30.1
nprogress: nprogress:
specifier: ^0.2.0 specifier: ^0.2.0
version: 0.2.0 version: 0.2.0
...@@ -5012,6 +5015,9 @@ packages: ...@@ -5012,6 +5015,9 @@ packages:
module-details-from-path@1.0.3: module-details-from-path@1.0.3:
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
moment@2.30.1:
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
mousetrap@1.6.5: mousetrap@1.6.5:
resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==}
...@@ -12654,6 +12660,8 @@ snapshots: ...@@ -12654,6 +12660,8 @@ snapshots:
module-details-from-path@1.0.3: {} module-details-from-path@1.0.3: {}
moment@2.30.1: {}
mousetrap@1.6.5: {} mousetrap@1.6.5: {}
mri@1.2.0: {} mri@1.2.0: {}
......
...@@ -12,6 +12,7 @@ enum Api { ...@@ -12,6 +12,7 @@ enum Api {
UpdateProject = '/pro/tenderManager/update', UpdateProject = '/pro/tenderManager/update',
DeleteProject = '/pro/tenderManager/del', DeleteProject = '/pro/tenderManager/del',
ProjectDetail = '/pro/tenderManager/details', ProjectDetail = '/pro/tenderManager/details',
selectCount = '/pro/tenderManager/selectCount',
Itemdelete = '/pro/tenderManager/details/del', Itemdelete = '/pro/tenderManager/details/del',
audit = '/pro/tenderManager/examine', audit = '/pro/tenderManager/examine',
} }
...@@ -48,3 +49,9 @@ export const auditItem = (params?: any) => ...@@ -48,3 +49,9 @@ export const auditItem = (params?: any) =>
url: Api.audit, url: Api.audit,
data: params, data: params,
}); });
export const selectCount = (params?: any) =>
defHttp.post<ProjectModel>({
url: Api.selectCount,
data: params,
});
...@@ -9,6 +9,7 @@ enum Api { ...@@ -9,6 +9,7 @@ enum Api {
ProjectDetail = '/pro/tenderPlan/details', ProjectDetail = '/pro/tenderPlan/details',
Itemdelete = '/pro/tenderPlan/details/del', Itemdelete = '/pro/tenderPlan/details/del',
audit = '/pro/tenderPlan/examine', audit = '/pro/tenderPlan/examine',
selectCount = '/pro/tenderPlan/selectCount',
} }
export const getListByPage = (params?: ProjectPageParams) => export const getListByPage = (params?: ProjectPageParams) =>
defHttp.post<ListGetResultModel>({ url: Api.GetList, data: params }); defHttp.post<ListGetResultModel>({ url: Api.GetList, data: params });
...@@ -30,6 +31,12 @@ export const updateItem = (params?: any) => ...@@ -30,6 +31,12 @@ export const updateItem = (params?: any) =>
'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
}, },
}); });
export const selectCount = (params?: any) =>
defHttp.post<ProjectModel>({
url: Api.selectCount,
data: params,
});
export const auditItem = (params?: any) => export const auditItem = (params?: any) =>
defHttp.post<ProjectModel>({ defHttp.post<ProjectModel>({
url: Api.audit, url: Api.audit,
......
...@@ -9,6 +9,7 @@ enum Api { ...@@ -9,6 +9,7 @@ enum Api {
ProjectDetail = '/pro/monthEngineer/details', ProjectDetail = '/pro/monthEngineer/details',
Itemdelete = '/pro/monthEngineer/delByDetail', Itemdelete = '/pro/monthEngineer/delByDetail',
audit = '/pro/monthEngineer/audit', audit = '/pro/monthEngineer/audit',
selectCount = '/pro/monthEngineer/selectCount',
} }
export const getMonthlyPlanList = (params?: ProjectParams) => export const getMonthlyPlanList = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.GetList, data: params }); defHttp.post<ProjectModel>({ url: Api.GetList, data: params });
...@@ -30,6 +31,11 @@ export const updateItem = (params?: any) => ...@@ -30,6 +31,11 @@ export const updateItem = (params?: any) =>
'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
}, },
}); });
export const selectCount = (params?: any) =>
defHttp.post<ProjectModel>({
url: Api.selectCount,
params,
});
export const auditItem = (params?: any) => export const auditItem = (params?: any) =>
defHttp.post<ProjectModel>({ defHttp.post<ProjectModel>({
url: Api.audit, url: Api.audit,
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
// fixed: undefined, // fixed: undefined,
// }, // },
}); });
import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
function getSelectRowList() { function getSelectRowList() {
// createMessage.info('请在控制台查看!'); // createMessage.info('请在控制台查看!');
......
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
import { ref, nextTick, reactive } from 'vue'; import { ref, nextTick, reactive } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, FormSchema, useForm } from '@/components/Form'; import { BasicForm, FormSchema, useForm } from '@/components/Form';
import moment from 'moment';
let schemas = reactive<FormSchema[]>([]); let schemas = reactive<FormSchema[]>([]);
const props = defineProps({ const props = defineProps({
userData: { type: Object }, userData: { type: Object },
}); });
const emit = defineEmits(['close']); const emit = defineEmits(['close', 'register']);
const modelRef = ref({}); const modelRef = ref({});
const [ const [
registerForm, registerForm,
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
picker: 'year', picker: 'year',
valueFormat: 'YYYY', valueFormat: 'YYYY',
format: 'YYYY', format: 'YYYY',
defaultValue: moment().format('YYYY'),
style: { style: {
width: '100%', width: '100%',
}, },
...@@ -74,6 +75,7 @@ ...@@ -74,6 +75,7 @@
placeholder: '月份', placeholder: '月份',
picker: 'month', picker: 'month',
valueFormat: 'YYYY-MM', valueFormat: 'YYYY-MM',
defaultValue: moment().format('YYYY-MM'),
format: 'YYYY-MM', format: 'YYYY-MM',
style: { style: {
width: '100%', width: '100%',
...@@ -109,6 +111,7 @@ ...@@ -109,6 +111,7 @@
}, },
], ],
}, },
defaultValue: '第三季度',
colProps: { span: 11, offset: 1 }, colProps: { span: 11, offset: 1 },
}); });
} }
...@@ -139,7 +142,7 @@ ...@@ -139,7 +142,7 @@
schemas = []; schemas = [];
console.log('submit'); console.log('submit');
emit('close', value); emit('close', value);
closeModal(); // closeModal();
}); });
} }
</script> </script>
...@@ -2,10 +2,11 @@ ...@@ -2,10 +2,11 @@
<div> <div>
<BasicTable @register="registerTable" :title="'年度工程资金计划'"> <BasicTable @register="registerTable" :title="'年度工程资金计划'">
<template #toolbar> <template #toolbar>
<a-button class="btn" type="primary" @click="addAnnualPlan"> 新建年度工程资金计划 </a-button> <a-button class="btn" type="primary" @click="addAnnualPlan">
新建年度工程资金计划
</a-button>
</template> </template>
<template #bodyCell="{ column, text, record, index }"> <template #bodyCell="{ column, text, record, index }">
<!-- 当前列是序号列时,显示序号 --> <!-- 当前列是序号列时,显示序号 -->
<span v-if="column.dataIndex === 'serialNumber'">{{ index + 1 }}</span> <span v-if="column.dataIndex === 'serialNumber'">{{ index + 1 }}</span>
...@@ -17,22 +18,22 @@ ...@@ -17,22 +18,22 @@
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
:actions="[ :actions="[
{ {
label: '修改', label: '修改',
onClick: handleEdit.bind(null, record, 0), onClick: handleEdit.bind(null, record, 0),
ifShow: (_action) => { ifShow: (_action) => {
return record.reviewStatus == 0; return record.reviewStatus == 0;
},
}, },
{ },
{
label: '详情', label: '详情',
onClick: handleEdit.bind(null, record, 1), onClick: handleEdit.bind(null, record, 1),
ifShow: (_action) => { ifShow: (_action) => {
return record.reviewStatus == 1; return record.reviewStatus == 1;
}, },
}, },
{ {
label: '审核', label: '审核',
color: 'success', color: 'success',
popConfirm: { popConfirm: {
...@@ -44,7 +45,7 @@ ...@@ -44,7 +45,7 @@
return record.reviewStatus == 0; return record.reviewStatus == 0;
}, },
}, },
{ {
label: '删除', label: '删除',
color: 'error', color: 'error',
popConfirm: { popConfirm: {
...@@ -65,106 +66,106 @@ ...@@ -65,106 +66,106 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {useRouter} from "vue-router"; import { useRouter } from 'vue-router';
const { push } = useRouter(); const { push } = useRouter();
import { Tag } from 'ant-design-vue'; import { Tag } from 'ant-design-vue';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getAnnualPlanList } from '@/api/project/annualPlan'; import { getAnnualPlanList } from '@/api/project/annualPlan';
import annualPlanModel from './annualPlanModel/annualPlanModel.vue'; import annualPlanModel from './annualPlanModel/annualPlanModel.vue';
import { getListByPage } from '@/api/project/biddingPlan'; import { getListByPage } from '@/api/project/biddingPlan';
import { useDrawer } from '@/components/Drawer'; import { useDrawer } from '@/components/Drawer';
import { columns, searchFormSchema } from './data'; import { columns, searchFormSchema } from './data';
import {useModal} from "@/components/Modal"; import { useModal } from '@/components/Modal';
import {router} from "@/router"; import { router } from '@/router';
import { BasicForm, useForm, FormProps, UseFormReturnType } from '@/components/Form'; import { BasicForm, useForm, FormProps, UseFormReturnType } from '@/components/Form';
import {formSchema} from "@/views/annualPlan/annualPlanEdit/tableData"; import { formSchema } from '@/views/annualPlan/annualPlanEdit/tableData';
import {auditItem, deleteItem} from "@/api/project/annualPlan"; import { auditItem, deleteItem } from '@/api/project/annualPlan';
import {onMounted} from "vue"; import { onMounted } from 'vue';
import {getDepartmentList} from "@/api/project/settlementManage"; import { getDepartmentList } from '@/api/project/settlementManage';
const [register, { openModal: openModal }] = useModal(); const [register, { openModal: openModal }] = useModal();
defineOptions({ name: 'Performance' }); defineOptions({ name: 'Performance' });
const [registerDrawer, { openDrawer }] = useDrawer(); const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getAnnualPlanList, api: getAnnualPlanList,
title: '123', title: '123',
columns, columns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: searchFormSchema,
}, },
useSearchForm: true, useSearchForm: true,
showTableSetting: false, showTableSetting: false,
bordered: true, bordered: true,
showIndexColumn: false, showIndexColumn: false,
actionColumn: { actionColumn: {
width: 180, width: 180,
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
// slots: { customRender: 'action' }, // slots: { customRender: 'action' },
fixed: undefined, fixed: undefined,
},
});
onMounted(async () => {
const data = await getDepartmentList()
searchFormSchema[1].componentProps.options=data
});
function handleEdit(record: Recordable, disabled: number) {
push({
path: '/annualPlan/annualPlanEdit',
query: {
id: record.id,
disabled: String(disabled),
}, },
}); });
}
function handleDelete(record: Recordable) { onMounted(async () => {
console.log(record); const data = await getDepartmentList();
deleteItem({ id: record.id }); searchFormSchema[1].componentProps.options = data;
reload();
}
function handleSuccess() {
reload();
}
const addAnnualPlan = () => {
openModal(true, {
data: ['year'],
}); });
};
function handleEdit(record: Recordable, disabled: number) {
const handleNew = (e) => { push({
console.log('eeee', e); path: '/annualPlan/annualPlanEdit',
router.push({ query: {
path: '/annualPlan/annualPlanEdit', id: record.id,
query: { disabled: String(disabled),
source: JSON.stringify(e), },
}, });
}); }
};
function handleDelete(record: Recordable) {
const change = (key: string) => { console.log(record);
reload(); deleteItem({ id: record.id });
}; reload();
}
async function examine(record: Recordable, disabled: boolean) {
const id = record.id; function handleSuccess() {
const res = await auditItem({ id }); reload();
console.log(res); }
reload();
} const addAnnualPlan = () => {
openModal(true, {
data: ['year'],
});
};
const handleNew = (e) => {
console.log('eeee', e);
router.push({
path: '/annualPlan/annualPlanEdit',
query: {
source: JSON.stringify(e),
},
});
};
const change = (key: string) => {
reload();
};
async function examine(record: Recordable, disabled: boolean) {
const id = record.id;
const res = await auditItem({ id });
console.log(res);
reload();
}
</script> </script>
<style scoped> <style scoped>
.btn { .btn {
margin-right: 10px; margin-right: 10px;
} }
</style> </style>
...@@ -62,12 +62,19 @@ ...@@ -62,12 +62,19 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getListByPage, deleteItem, auditItem } from '@/api/project/biddingManagement'; import {
getListByPage,
deleteItem,
auditItem,
selectCount,
} from '@/api/project/biddingManagement';
import { columns, searchFormSchema } from './biddingManagement.data'; import { columns, searchFormSchema } from './biddingManagement.data';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import yearModal from '@/components/yearModal.vue'; import yearModal from '@/components/yearModal.vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
const { push } = useRouter(); const { push } = useRouter();
import { useMessage } from '@/hooks/web/useMessage';
const { error } = createMessage;
defineOptions({ name: 'RoleManagement' }); defineOptions({ name: 'RoleManagement' });
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
...@@ -89,7 +96,7 @@ ...@@ -89,7 +96,7 @@
fixed: undefined, fixed: undefined,
}, },
}); });
const [register, { openModal: openModal }] = useModal(); const [register, { openModal: openModal, closeModal: closeModal }] = useModal();
function handleCreate() { function handleCreate() {
openModal(true, { openModal(true, {
data: ['year', 'quarter'], data: ['year', 'quarter'],
...@@ -111,12 +118,17 @@ ...@@ -111,12 +118,17 @@
reload(); reload();
} }
function handleNew(e) { async function handleNew(e) {
console.log(e); let res = await selectCount(e);
push({ if (res == true) {
path: '/biddingManagement/edit', closeModal();
query: e, push({
}); path: '/biddingManagement/edit',
query: e,
});
} else {
error('该周期已填报');
}
} }
async function examine(record: Recordable, disabled: boolean) { async function examine(record: Recordable, disabled: boolean) {
const id = record.id; const id = record.id;
......
...@@ -62,13 +62,14 @@ ...@@ -62,13 +62,14 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getListByPage, deleteItem, auditItem } from '@/api/project/biddingPlan'; import { getListByPage, deleteItem, auditItem, selectCount } from '@/api/project/biddingPlan';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import yearModal from '@/components/yearModal.vue'; import yearModal from '@/components/yearModal.vue';
import { columns, searchFormSchema } from './biddingPlan.data'; import { columns, searchFormSchema } from './biddingPlan.data';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
const { error } = createMessage;
const { push } = useRouter(); const { push } = useRouter();
const [register, { openModal: openModal }] = useModal(); const [register, { openModal: openModal, closeModal: closeModal }] = useModal();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getListByPage, api: getListByPage,
columns, columns,
...@@ -110,13 +111,19 @@ ...@@ -110,13 +111,19 @@
reload(); reload();
} }
function handleNew(e) { async function handleNew(e) {
console.log(e); let res = await selectCount(e);
push({ if (res == true) {
path: '/biddingPlan/edit', closeModal();
query: e, push({
}); path: '/biddingPlan/edit',
query: e,
});
} else {
error('该周期已填报');
}
} }
async function examine(record: Recordable, disabled: boolean) { async function examine(record: Recordable, disabled: boolean) {
const id = record.id; const id = record.id;
const res = await auditItem({ id }); const res = await auditItem({ id });
......
...@@ -68,12 +68,19 @@ ...@@ -68,12 +68,19 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getMonthlyPlanList, deleteItem, auditItem } from '@/api/project/monthlyPlan'; import {
getMonthlyPlanList,
deleteItem,
auditItem,
selectCount,
} from '@/api/project/monthlyPlan';
import { Tag } from 'ant-design-vue'; import { Tag } from 'ant-design-vue';
import { useDrawer } from '@/components/Drawer'; import { useDrawer } from '@/components/Drawer';
import { columns, searchFormSchema } from './data'; import { columns, searchFormSchema } from './data';
import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage();
const { error } = createMessage;
defineOptions({ name: 'MonthlyPlan' }); defineOptions({ name: 'MonthlyPlan' });
import yearModal from '@/components/yearModal.vue'; import yearModal from '@/components/yearModal.vue';
...@@ -81,11 +88,10 @@ ...@@ -81,11 +88,10 @@
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import {onMounted} from "vue"; import { onMounted } from 'vue';
import {getDepartmentList} from "@/api/project/settlementManage"; import { getDepartmentList } from '@/api/project/settlementManage';
const { push } = useRouter(); const { push } = useRouter();
const [register, { openModal: openModal, closeModal: closeModal }] = useModal();
const [register, { openModal: openModal }] = useModal();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getMonthlyPlanList, api: getMonthlyPlanList,
...@@ -109,8 +115,8 @@ ...@@ -109,8 +115,8 @@
}); });
onMounted(async () => { onMounted(async () => {
const data = await getDepartmentList() const data = await getDepartmentList();
searchFormSchema[1].componentProps.options=data searchFormSchema[1].componentProps.options = data;
}); });
function handleEdit(record: Recordable, disabled: number) { function handleEdit(record: Recordable, disabled: number) {
...@@ -144,12 +150,18 @@ ...@@ -144,12 +150,18 @@
}); });
}; };
const handleNew = (e) => { async function handleNew(e) {
push({ let res = await selectCount(e);
path: '/monthlyPlan/monthlyPlanEdit', if (res == true) {
query: e, closeModal();
}); push({
}; path: '/monthlyPlan/monthlyPlanEdit',
query: e,
});
} else {
error('该周期已填报');
}
}
</script> </script>
<style scoped> <style scoped>
.btn { .btn {
......
...@@ -37,7 +37,17 @@ ...@@ -37,7 +37,17 @@
columns: contractColumns, columns: contractColumns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: [
{
field: 'contactName',
label: '',
component: 'Input',
componentProps: {
placeholder: '合同名称',
},
colProps: { span: 5 },
},
],
}, },
searchInfo: { searchInfo: {
proId: detailId, proId: detailId,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment