diff --git a/package.json b/package.json
index 9f49143..0746e67 100644
--- a/package.json
+++ b/package.json
@@ -111,7 +111,8 @@
"vxe-table-plugin-export-xlsx": "^3.0.4",
"xe-utils": "^3.5.11",
"xlsx": "^0.18.5",
- "element-plus": "2.2.28"
+ "element-plus": "2.2.28",
+ "vue3-tree-org":"^4.2.2"
},
"devDependencies": {
"@commitlint/cli": "^17.6.6",
diff --git a/src/main.ts b/src/main.ts
index 7a490d6..736ab45 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -20,12 +20,15 @@ import { setupStore } from '@/store';
import "echarts"
import ECharts from "vue-echarts"
+import vue3TreeOrg from 'vue3-tree-org';
+import "vue3-tree-org/lib/vue3-tree-org.css";
+
import App from './App.vue';
async function bootstrap() {
const app = createApp(App);
app.use(ElementPlus)
-
+ app.use(vue3TreeOrg)
// Configure store
// 配置 store
setupStore(app);
diff --git a/src/views/informationSub/countStatistics/countStatistics.api.ts b/src/views/informationSub/countStatistics/countStatistics.api.ts
new file mode 100644
index 0000000..8ef21d6
--- /dev/null
+++ b/src/views/informationSub/countStatistics/countStatistics.api.ts
@@ -0,0 +1,24 @@
+import { defHttp } from '@/utils/http/axios';
+
+export enum Api {
+
+ changeFieldManagePageList = '/huzhouChangefieldmanage/changeFieldManagePageList',
+ getchangeFieldManageById = '/huzhouChangefieldmanage/getchangeFieldManageById',
+ modifychangeFieldManageById='/huzhouChangefieldmanage/modifychangeFieldManageById'
+}
+
+/**
+ * 职务list
+ */
+export const changeFieldManagePageList = (params?) =>defHttp.get({ url: Api.changeFieldManagePageList, params });
+
+export const getchangeFieldManageById = (params?) =>defHttp.get({ url: Api.getchangeFieldManageById, params });
+export const modifychangeFieldManageById = (params?) =>defHttp.post({ url: Api.modifychangeFieldManageById, params });
+
+
+
+
+
+
+
+
diff --git a/src/views/informationSub/countStatistics/countStatistics.data.ts b/src/views/informationSub/countStatistics/countStatistics.data.ts
new file mode 100644
index 0000000..1335b2a
--- /dev/null
+++ b/src/views/informationSub/countStatistics/countStatistics.data.ts
@@ -0,0 +1,71 @@
+import { FormSchema } from '@/components/Form';
+import { BasicColumn } from '@/components/Table';
+import { useDictStore } from '@/store/modules/dict';
+
+export const countStatisticsColumns: BasicColumn[] = [
+
+ {
+ title: '责任单位',
+ width: 150,
+ dataIndex: 'fieldName',
+ },
+ {
+ title: '行政区划',
+ dataIndex: 'ischange',
+ width: 150,
+
+ },
+ {
+ title: '已提交稿件数量',
+ dataIndex: 'isuploadfile',
+ width: 150,
+ sorter: true,
+
+ }
+
+];
+
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: '责任单位',
+ field: 'fieldName',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+ {
+ label: '行政区划',
+ field: 'fieldName',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+]
+export const countStatisticsFormSchema: FormSchema[] = [
+ {
+ label: '责任单位',
+ field: 'fieldName',
+ component: 'Input',
+ dynamicDisabled: true,
+ colProps: { span:12},
+ },
+ {
+ label: '行政区划',
+ field: 'ischange',
+ component: 'DictSelect',
+ componentProps: {
+ dictType: 'whether',
+ },
+ dynamicDisabled: true,
+ colProps: { span:12 },
+ },
+ {
+ label: '已提交稿件数量',
+ field: 'isuploadfile',
+ component: 'DictSelect',
+ componentProps: {
+ dictType: 'whether',
+ },
+ required: true,
+ colProps: { span: 12 },
+ }
+];
\ No newline at end of file
diff --git a/src/views/informationSub/countStatistics/index.vue b/src/views/informationSub/countStatistics/index.vue
new file mode 100644
index 0000000..318627f
--- /dev/null
+++ b/src/views/informationSub/countStatistics/index.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/informationSub/countStatistics/modifycountStatistics.vue b/src/views/informationSub/countStatistics/modifycountStatistics.vue
new file mode 100644
index 0000000..981add5
--- /dev/null
+++ b/src/views/informationSub/countStatistics/modifycountStatistics.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/informationSub/monthlyJournal/addAndModify.vue b/src/views/informationSub/monthlyJournal/addAndModify.vue
new file mode 100644
index 0000000..eb2d469
--- /dev/null
+++ b/src/views/informationSub/monthlyJournal/addAndModify.vue
@@ -0,0 +1,138 @@
+
+
+
+
+ 资料信息
+
+ 上传期刊资料
+
+
+
+
+ 选取文件
+ 文件大小且不超过500M
+
+
+
+
+ 上传
+ 关闭窗口
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/informationSub/monthlyJournal/index.vue b/src/views/informationSub/monthlyJournal/index.vue
new file mode 100644
index 0000000..cdef458
--- /dev/null
+++ b/src/views/informationSub/monthlyJournal/index.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+ 新增月度期刊
+ 批量导出
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/informationSub/monthlyJournal/monthlyJournal.api.ts b/src/views/informationSub/monthlyJournal/monthlyJournal.api.ts
new file mode 100644
index 0000000..ba609da
--- /dev/null
+++ b/src/views/informationSub/monthlyJournal/monthlyJournal.api.ts
@@ -0,0 +1,23 @@
+import { defHttp } from '@/utils/http/axios';
+import { downloadFile } from "../../../api/common/api"
+
+export enum Api {
+ periodicallabPageList = '/huzhouPeriodicallab/periodicallabPageList',
+ addPeriodicallab="/huzhouPeriodicallab/addPeriodicallab",
+ modifyPeriodicallab = '/huzhouPeriodicallab/modifyPeriodicallab',
+ getperiodicallabById="/huzhouPeriodicallab/getperiodicallabById",
+ deletePeriodicallab = '/huzhouPeriodicallab/deletePeriodicallab',
+ batchdownloadPeriodicallabFiles="/huzhouPeriodicallab/batchdownloadPeriodicallabFiles"
+}
+
+export const periodicallabPageList = (params) => defHttp.get({ url: Api.periodicallabPageList, params })
+export const getperiodicallabById = (params) => defHttp.get({ url: Api.getperiodicallabById, params })
+export const batchdownloadPeriodicallabFiles = (params) => downloadFile(Api.batchdownloadPeriodicallabFiles,"批量导出.zip",params)
+export const addPeriodicallab = (params?) =>defHttp.post({ url: Api.addPeriodicallab,headers:{ "Content-Type": "multipart/form-data" }, params })
+
+export const modifyPeriodicallab = (params?) =>defHttp.post({ url: Api.modifyPeriodicallab,headers:{ "Content-Type": "multipart/form-data" }, params })
+
+export const deletePeriodicallab = (params?) =>defHttp.post({ url: Api.deletePeriodicallab, params })
+
+
+
diff --git a/src/views/informationSub/monthlyJournal/monthlyJournal.data.ts b/src/views/informationSub/monthlyJournal/monthlyJournal.data.ts
new file mode 100644
index 0000000..5143b73
--- /dev/null
+++ b/src/views/informationSub/monthlyJournal/monthlyJournal.data.ts
@@ -0,0 +1,90 @@
+import { FormSchema } from '@/components/Form';
+import { BasicColumn } from '@/components/Table';
+
+
+export const monthlyJournalcolumns: BasicColumn[] = [
+ {
+ title: '期刊名称',
+ width: 150,
+ dataIndex: 'name',
+ },
+
+ {
+ title: '期刊期数',
+ width: 150,
+ dataIndex: 'periods',
+ },
+ {
+ title: '发布日期',
+ width: 200,
+ dataIndex: 'publishTime',
+ },
+ // {
+ // title: '文件名称',
+ // dataIndex: 'documentName',
+ // width: 150,
+ // },
+ // {
+ // title: '文件大小',
+ // dataIndex: 'size',
+ // width: 150,
+ // customRender: ({ record }) => {
+ // let kbNum: number = record.size / 1024
+ // if (kbNum < 1024) {
+ // return kbNum.toFixed(2).toString() + "KB"
+ // } else {
+ // let mbNum: number = kbNum / 1024
+ // return mbNum.toFixed(2).toString() + "MB"
+ // }
+
+ // },
+
+ // },
+
+];
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: '期刊期数',
+ field: 'periods',
+ component: 'Input',
+ colProps: { span: 5 },
+ },
+ {
+ label: '发布日期',
+ field: 'publishTime',
+ component: 'Input',
+ colProps: { span: 5 },
+
+ },
+
+];
+export const monthlyJournalformSchemas: FormSchema[] = [
+ {
+ label: '期刊名称',
+ field: 'name',
+ component: 'Input',
+ required: true,
+ colProps: { span: 12 },
+ },
+
+ {
+ label: '期刊期数',
+ field: 'periods',
+ required: true,
+ component: 'Input',
+ colProps: { span: 6 },
+
+ }, {
+ label: '发布日期',
+ field: 'publishTime',
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD',
+
+ },
+ required: true,
+ colProps: { span: 6},
+
+ },
+
+];
diff --git a/src/views/workSystem/organizationStructure/detail.vue b/src/views/workSystem/organizationStructure/detail.vue
new file mode 100644
index 0000000..f1b789a
--- /dev/null
+++ b/src/views/workSystem/organizationStructure/detail.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/workSystem/organizationStructure/index.vue b/src/views/workSystem/organizationStructure/index.vue
new file mode 100644
index 0000000..4432ff7
--- /dev/null
+++ b/src/views/workSystem/organizationStructure/index.vue
@@ -0,0 +1,113 @@
+
+
+
+
组织架构
+
+
+
+
+
+ {{ node.label }}
+
+ {{ node.label }}
+ {{ node.label }}
+ {{ node.label }}
+ {{ node.label }}
+
+ {{ node.label }}
+ {{ node.label }}
+ {{ node.label }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/workSystem/organizationStructure/organizationStructure.api.ts b/src/views/workSystem/organizationStructure/organizationStructure.api.ts
new file mode 100644
index 0000000..0e73665
--- /dev/null
+++ b/src/views/workSystem/organizationStructure/organizationStructure.api.ts
@@ -0,0 +1,10 @@
+import { defHttp } from '@/utils/http/axios';
+import { downloadFile } from "../../../api/common/api"
+
+export enum Api {
+ getUsers = '/api/auth/sys/user/getUsers',
+}
+
+export const getUsers = (params) => defHttp.get({ url: Api.getUsers, params })
+
+
diff --git a/src/views/workSystem/organizationStructure/organizationStructure.data.ts b/src/views/workSystem/organizationStructure/organizationStructure.data.ts
new file mode 100644
index 0000000..1478cc8
--- /dev/null
+++ b/src/views/workSystem/organizationStructure/organizationStructure.data.ts
@@ -0,0 +1,71 @@
+import { FormSchema } from '@/components/Form';
+import { BasicColumn } from '@/components/Table';
+
+
+export const organizationStructurecolumns: BasicColumn[] = [
+ {
+ title: '昵称',
+ width: 150,
+ dataIndex: 'nickname',
+ },
+
+ {
+ title: '角色',
+ width: 150,
+ dataIndex: 'role',
+ // format: 'dict|regulationlabCategory',
+ },
+ {
+ title: '性别',
+ width: 200,
+ dataIndex: 'sex',
+ format: 'dict|sex',
+ },
+ {
+ title: '手机号',
+ dataIndex: 'phoneNumber',
+ width: 150,
+ },
+ {
+ title: '单位名称',
+ dataIndex: 'workplace',
+ width: 150
+
+ },
+
+];
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: '昵称',
+ field: 'nickname',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+ {
+ label: '角色',
+ field: 'role',
+ component: 'Input',
+
+ // component: 'DictSelect',
+ // itemProps: { validateTrigger: 'blur' },
+ // componentProps: {
+ // dictType: 'regulationlabCategory'
+ // },
+ colProps: { span: 6 },
+
+ },
+ {
+ label: '手机号',
+ field: 'phoneNumber',
+ component: 'Input',
+ colProps: { span: 6 },
+
+ },
+ {
+ label: '单位名称',
+ field: 'workplace',
+ component: 'Input',
+ colProps: { span: 6 },
+ }
+
+];
\ No newline at end of file