Browse Source

新增统计接口

master
zhouhaibin 3 months ago
parent
commit
1247c287b7
  1. 12
      src/views/informationSub/countStatistics/countStatistics.api.ts
  2. 69
      src/views/informationSub/countStatistics/countStatistics.data.ts
  3. 115
      src/views/informationSub/countStatistics/index.vue
  4. 121
      src/views/informationSub/countStatistics/modifycountStatistics.vue

12
src/views/informationSub/countStatistics/countStatistics.api.ts

@ -4,7 +4,12 @@ export enum Api {
periodicallabCountPageList = '/huzhouPeriodicallabCount/periodicallabCountPageList',
getperiodicallabById = '/huzhouPeriodicallabCount/getperiodicallabById',
modifyPeriodicallabCount='/huzhouPeriodicallabCount/modifyPeriodicallabCount'
modifyPeriodicallabCount='/huzhouPeriodicallabCount/modifyPeriodicallabCount',
addPeriodicallabCount="/huzhouPeriodicallabCount/addPeriodicallabCount",
deletePeriodicallabCount="/huzhouPeriodicallabCount/deletePeriodicallabCount",
getadminDivisionList="/huzhouProject/getadminDivisionList",
getDutyWorkplaceList="/huzhouProject/getDutyWorkplaceList",
}
/**
@ -14,6 +19,11 @@ export const periodicallabCountPageList = (params?) =>defHttp.get({ url: Api.pe
export const getperiodicallabById = (params?) =>defHttp.get({ url: Api.getperiodicallabById, params });
export const modifyPeriodicallabCount = (params?) =>defHttp.post({ url: Api.modifyPeriodicallabCount, params });
export const deletePeriodicallabCount = (params?) =>defHttp.post({ url: Api.deletePeriodicallabCount, params });
export const addPeriodicallabCount = (params?) =>defHttp.post({ url: Api.addPeriodicallabCount, params });
export const getDutyWorkplaceList = (params?) =>defHttp.get({ url: Api.getDutyWorkplaceList, params });
export const getadminDivisionList = (params?) =>defHttp.get({ url: Api.getadminDivisionList, params });

69
src/views/informationSub/countStatistics/countStatistics.data.ts

@ -1,23 +1,53 @@
import { FormSchema } from '@/components/Form';
import { BasicColumn } from '@/components/Table';
import { useDictStore } from '@/store/modules/dict';
import { getDutyWorkplaceList, getadminDivisionList } from './countStatistics.api';
import { get } from 'sortablejs';
let dutyWorkplaceOption=[]
let adminDivisionOption=[]
async function getDutyWorkplaceOptions() {
let list = await getDutyWorkplaceList();
let uniqueList = [...new Set(list)];
let res= uniqueList.map(item => {
return {
label: item,
value: item
}
})
console.log("wwres",res)
return res
}
async function getadminDivisionOptions() {
let list = await getadminDivisionList();
let uniqueList = [...new Set(list)];
let res= uniqueList.map(item => {
return {
label: item,
value: item
}
})
console.log("wres",res)
return res
}
export const countStatisticsColumns: BasicColumn[] = [
{
title: '责任单位',
width: 150,
dataIndex: 'fieldName',
dataIndex: 'dutyWorkplace',
},
{
title: '行政区划',
dataIndex: 'ischange',
dataIndex: 'adminDivision',
width: 150,
},
{
title: '已提交稿件数量',
dataIndex: 'isuploadfile',
dataIndex: 'countNumber',
width: 150,
sorter: true,
@ -29,42 +59,47 @@ export const countStatisticsColumns: BasicColumn[] = [
export const searchFormSchema: FormSchema[] = [
{
label: '责任单位',
field: 'fieldName',
field: 'dutyWorkplace',
component: 'Input',
colProps: { span: 6 },
},
{
label: '行政区划',
field: 'fieldName',
field: 'adminDivision',
component: 'Input',
colProps: { span: 6 },
},
]
export const countStatisticsFormSchema: FormSchema[] = [
{label:"id",
field: 'id',
component: 'Input',
show:false,
},
{
label: '责任单位',
field: 'fieldName',
component: 'Input',
dynamicDisabled: true,
field: 'dutyWorkplace',
required: true,
component: 'Select',
componentProps: {
options:await getDutyWorkplaceOptions()
},
colProps: { span:12},
},
{
label: '行政区划',
field: 'ischange',
component: 'DictSelect',
field: 'adminDivision',
required: true,
component: 'Select',
componentProps: {
dictType: 'whether',
options:await getadminDivisionOptions()
},
dynamicDisabled: true,
colProps: { span:12 },
},
{
label: '已提交稿件数量',
field: 'isuploadfile',
component: 'DictSelect',
componentProps: {
dictType: 'whether',
},
field: 'countNumber',
component: 'InputNumber',
required: true,
colProps: { span: 12 },
}

115
src/views/informationSub/countStatistics/index.vue

@ -1,6 +1,5 @@
<template>
<PageWrapper dense>
<!--引用表格-->
<BasicTable @register="registerTable">
<!--插槽:table标题-->
@ -9,65 +8,81 @@
<!-- <TableAction :actions="getTableAction(record)" /> -->
<TableAction :actions="getTableAction(record)" />
</template>
<template #tableTitle>
<el-button type="primary" round @click="handleAdd" v-if="isShowByRoles('manageOrg')"
>新增</el-button
>
</template>
</BasicTable>
<BasicModal @register="registechangeFieldManageModal" title="变更字段详情" width="1200px" :showOkBtn="false">
<modifycountStatistics :id="id" @exit="close" />
</BasicModal>
<modifycountStatistics @register="register" @exit="close" />
</PageWrapper>
</template>
<script lang="ts" name="system-user" setup>
//ts
import { ref } from 'vue';
import { ActionItem, BasicTable, TableAction, useTable } from '@/components/Table';
import { PageWrapper } from '@/components/Page';
import modifycountStatistics from "./modifycountStatistics.vue"
import { BasicModal, useModal } from '@/components/Modal';
import { countStatisticsColumns, searchFormSchema } from './countStatistics.data'
import { periodicallabCountPageList } from './countStatistics.api';
//ts
import { ref } from 'vue';
import { ActionItem, BasicTable, TableAction, useTable } from '@/components/Table';
import { PageWrapper } from '@/components/Page';
import modifycountStatistics from './modifycountStatistics.vue';
import { BasicModal, useModal } from '@/components/Modal';
import { countStatisticsColumns, searchFormSchema } from './countStatistics.data';
import { periodicallabCountPageList,deletePeriodicallabCount } from './countStatistics.api';
import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api';
let id = ref();
const [registechangeFieldManageModal, { openModal: openchangeFieldManage,closeModal}] = useModal();//
const [registerTable,{reload}] = useTable({
title: '信息稿件详情',
api: periodicallabCountPageList,
columns: countStatisticsColumns,
useSearchForm: true,
actionColumn: {
width: 140,
title: '操作',
dataIndex: 'action',
slots: { customRender: 'action' },
},
//
formConfig: {
schemas: searchFormSchema,
}
});
let id = ref();
const [register, { openModal }] = useModal();
function getTableAction(record): ActionItem[] {
return [
{
label: '修改',
onClick: handlemodifympage.bind(null, record),
const [registerTable, { reload }] = useTable({
title: '信息稿件详情',
api: periodicallabCountPageList,
columns: countStatisticsColumns,
useSearchForm: true,
actionColumn: {
width: 140,
title: '操作',
dataIndex: 'action',
slots: { customRender: 'action' },
},
//
formConfig: {
schemas: searchFormSchema,
},
});
];
}
function getTableAction(record): ActionItem[] {
return [
{
label: '修改',
onClick: handlemodifympage.bind(null, record),
},
{
label: '删除',
ifShow: () => {
return isShowByRoles('manageOrg')
},
popConfirm: {
title: '确定删除吗?',
confirm: handleDelete.bind(null, record),
},
}
];
}
function handleAdd() {
openModal(true,{id:null});
}
function handlemodifympage(record) {
id.value = record.id;
openModal(true,{id:record.id});
}
function close() {
reload();
}
async function handleDelete(record) {
await deletePeriodicallabCount({id:record.id})
reload();
function handlemodifympage(record) {
id.value = record.id
openchangeFieldManage()
}
function close(){
closeModal()
reload()
}
}
</script>
<style scoped></style>
<style scoped></style>

121
src/views/informationSub/countStatistics/modifycountStatistics.vue

@ -1,58 +1,79 @@
<template>
<div>
<BasicModal
v-bind="$attrs"
@register="registerModal"
title="变更统计"
width="1200px"
:showOkBtn="false"
>
<BasicForm @register="registerchangeFieldForm" @submit="handleSubmit" />
</div>
</BasicModal>
</template>
<script lang="ts" name="changeFieldManageDetail" setup>
//ts
import { defineProps, onMounted } from 'vue';
import { useForm, BasicForm } from '@/components/Form';
import { countStatisticsFormSchema } from './countStatistics.data'
import { modifyPeriodicallabCount, getperiodicallabById } from './countStatistics.api';
let emit = defineEmits(["exit"])
let dataTo = defineProps(["id"])
onMounted(async () => {
let res = await getperiodicallabById({id: dataTo.id})
console.log("结果是", res)
setFieldsValue(res)
})
const [registerchangeFieldForm,{ getFieldsValue, validate, setFieldsValue }] = useForm({
//
schemas: countStatisticsFormSchema,
//
// submitButtonOptions: { text: '', preIcon: '' },
//
resetButtonOptions: { text: '取消' },
// showActionButtonGroup: false,
//
// autoSubmitOnEnter: true,
// //
// showResetButton: false,
//
submitButtonOptions: { text: '提交' },
// 24 0-24
actionColOptions: { span: 14 },
//
// submitFunc: customSubmitFunc,
//
resetFunc: customResetFunc,
labelCol: { style: { width: '120px' } },
wrapperCol: { style: { width: 'auto' } },
// disabled:true
})
async function handleSubmit() {
if (await validate()) {
let datas = await getFieldsValue()
await modifyPeriodicallabCount(datas)
emit("exit")
//ts
import { ref, onMounted } from 'vue';
import { useForm, BasicForm } from '@/components/Form';
import { countStatisticsFormSchema } from './countStatistics.data';
import {
modifyPeriodicallabCount,
getperiodicallabById,
addPeriodicallabCount,
} from './countStatistics.api';
import { useModalInner, BasicModal } from '@/components/Modal';
const [registerModal, { closeModal }] = useModalInner(init);
let id = ref('');
let emit = defineEmits(['exit']);
async function init(dataTo) {
id.value = dataTo.id;
if (dataTo.id) {
let res = await getperiodicallabById({ id: dataTo.id });
console.log('结果是', res);
setFieldsValue(res);
}
}
}
async function customResetFunc() {
emit("exit")
onMounted(async () => {});
const [registerchangeFieldForm, { getFieldsValue, validate, setFieldsValue }] = useForm({
//
schemas: countStatisticsFormSchema,
//
// submitButtonOptions: { text: '', preIcon: '' },
//
resetButtonOptions: { text: '取消' },
// showActionButtonGroup: false,
//
// autoSubmitOnEnter: true,
// //
// showResetButton: false,
//
submitButtonOptions: { text: '提交' },
// 24 0-24
actionColOptions: { span: 14 },
//
// submitFunc: customSubmitFunc,
//
resetFunc: customResetFunc,
labelCol: { style: { width: '120px' } },
wrapperCol: { style: { width: 'auto' } },
// disabled:true
});
async function handleSubmit() {
if (await validate()) {
if (id.value) {
let datas = await getFieldsValue();
await modifyPeriodicallabCount(datas);
} else {
let datas = await getFieldsValue();
await addPeriodicallabCount(datas);
}
}
emit('exit');
closeModal()
}
}
async function customResetFunc() {
emit('exit');
closeModal()
}
</script>
<style scoped></style>
<style scoped></style>

Loading…
Cancel
Save