Browse Source

feat: 优化对接指数服务的接口

yanglzh 9 months ago
parent
commit
34a6011849

+ 10 - 7
src/api/modules/assess.ts

@@ -1,14 +1,17 @@
 import { get, post, del, put } from '/@/utils/request';
 import { get, post, del, put } from '/@/utils/request';
 import { getOtherServersOrigin } from '/@/utils/origin';
 import { getOtherServersOrigin } from '/@/utils/origin';
 
 
-const baseUrl = getOtherServersOrigin(import.meta.env.VITE_ASSESS_URL);
+// const baseUrl = getOtherServersOrigin(import.meta.env.VITE_ASSESS_URL);
+const baseUrl = '/totalIndex/assess'
 
 
 export default {
 export default {
-  getList: (params?: object) => get(baseUrl + '/setup', params),
-  setItem: (params?: object) => post(baseUrl + '/setup', params),
-  deleteItem: (params?: object) => del(baseUrl + '/setup', params),
-  getDataSourceInfo: (params?: object) => get(baseUrl + '/datasetup/target', params),
+  getList: (params?: object) => get('/totalIndex/assess/getAll', params),
+  getItem: (itemCode: string) => get('/totalIndex/assess/getByItemCode', { itemCode }),
+  setItem: (params?: object) => post('/totalIndex/assess/add', params),
+  editItem: (params?: object) => put('/totalIndex/assess/edit', params),
+  deleteItem: (params?: object) => del('/totalIndex/assess/delete', params),
+  getDataSourceInfo: (params?: object) => get('/totalIndex/dataSetUp/getInfoByItemCodeAndTarget', params),
   testDataSource: (params?: object) => post(baseUrl + '/datasetup/test', params),
   testDataSource: (params?: object) => post(baseUrl + '/datasetup/test', params),
-  addDataSourceInfo: (params?: object) => post(baseUrl + '/datasetup', params),
-  editataSourceInfo: (params?: object) => put(baseUrl + '/datasetup', params),
+  addDataSourceInfo: (params?: object) => post('/totalIndex/dataSetUp/add', params),
+  editataSourceInfo: (params?: object) => put('/totalIndex/dataSetUp/edit', params),
 }
 }

+ 3 - 2
src/views/modules/assess/component/addSign.vue

@@ -15,8 +15,9 @@
 					</el-col>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 						<el-form-item class="has-symbol" label="权重" prop="weight">
 						<el-form-item class="has-symbol" label="权重" prop="weight">
-							<el-input v-model.number="ruleForm.weight" placeholder="请输入权重" clearable></el-input>
-							<span class="symbol">%</span>
+							<el-input v-model.number="ruleForm.weight" placeholder="请输入权重" clearable>
+								<template #append>%</template>
+							</el-input>
 						</el-form-item>
 						</el-form-item>
 					</el-col>
 					</el-col>
 				</el-row>
 				</el-row>

+ 123 - 132
src/views/modules/assess/component/detailItem.vue

@@ -1,148 +1,139 @@
 <template>
 <template>
-  <div class="system-add-user-container">
-    <el-dialog
-      title="平台健康度"
-      v-model="isShowDialog"
-      width="790px"
-    >
-      <div class="table-wrap">
-        <div class="table-item-wrap">
-          <div class="label">详细介绍</div>
-          <div class="value">{{ruleForm.explain}}</div>
-        </div>
-        <div class="table-item-wrap">
-          <div class="label">SecretKey</div>
-          <div class="value">调用API的安全密码,请联系管理员获取</div>
-        </div>
-        <div class="table-item-wrap">
-          <div class="label" style="display: flex;flex-direction: column;justify-content: center;">
-            <p>入口URL</p>
-            <p>请求方式</p>
-            <p>请求Body参数</p>
-          </div>
-          <div class="value">
-            <section>
-              <div class="inner-label">入口URL</div>
-              <div class="inner-value url">{{baseUrl}}/data</div>
-            </section>
-            <section>
-              <div class="inner-label">请求方式</div>
-              <div class="inner-value">POST</div>
-            </section>
-            <section>
-              <div class="inner-label">请求Body参数</div>
-              <div class="inner-value">
-                <div>itemcode:{{ruleForm.item_code}}</div>
-                <div>name:
-                  <span
-                    v-for="(item, index) in ruleForm.targets"
-                    :key="index"
-                  >{{`${item.name} `}} </span>
-                </div>
-                <div>value:当前值</div>
-                <div>form_info:平台数据</div>
-              </div>
-            </section>
-          </div>
-        </div>
-        <div class="table-item-wrap">
-          <div class="label" style="display: flex;flex-direction: column;justify-content: center;">
-            <p>出口URL</p>
-            <p>请求方式</p>
-            <p>请求Query参数</p>
-          </div>
-          <div class="value">
-            <section>
-              <div class="inner-label">出口URL</div>
-              <div class="inner-value url">{{baseUrl}}/index</div>
-            </section>
-            <section>
-              <div class="inner-label">请求方式</div>
-              <div class="vinner-value">GET</div>
-            </section>
-            <section>
-              <div class="inner-label">请求Query参数</div>
-              <div class="inner-value">
-                <div>itemcode:{{ruleForm.item_code}}</div>
-              </div>
-            </section>
-          </div>
-        </div>
-      </div>
-    </el-dialog>
-  </div>
+	<div class="system-add-user-container">
+		<el-dialog title="平台健康度" v-model="isShowDialog" width="790px">
+			<div class="table-wrap">
+				<div class="table-item-wrap">
+					<div class="label">详细介绍</div>
+					<div class="value">{{ ruleForm.explain }}</div>
+				</div>
+				<div class="table-item-wrap">
+					<div class="label">SecretKey</div>
+					<div class="value">调用API的安全密码,请联系管理员获取</div>
+				</div>
+				<div class="table-item-wrap">
+					<div class="label" style="display: flex; flex-direction: column; justify-content: center">
+						<p>入口URL</p>
+						<p>请求方式</p>
+						<p>请求Body参数</p>
+					</div>
+					<div class="value">
+						<section>
+							<div class="inner-label">入口URL</div>
+							<div class="inner-value url">{{ baseUrl }}/data</div>
+						</section>
+						<section>
+							<div class="inner-label">请求方式</div>
+							<div class="inner-value">POST</div>
+						</section>
+						<section>
+							<div class="inner-label">请求Body参数</div>
+							<div class="inner-value">
+								<div>itemCode:{{ ruleForm.itemCode }}</div>
+								<div>
+									name:
+									<span v-for="(item, index) in ruleForm.targets" :key="index">{{ `${item.name} ` }} </span>
+								</div>
+								<div>value:当前值</div>
+								<div>form_info:平台数据</div>
+							</div>
+						</section>
+					</div>
+				</div>
+				<div class="table-item-wrap">
+					<div class="label" style="display: flex; flex-direction: column; justify-content: center">
+						<p>出口URL</p>
+						<p>请求方式</p>
+						<p>请求Query参数</p>
+					</div>
+					<div class="value">
+						<section>
+							<div class="inner-label">出口URL</div>
+							<div class="inner-value url">{{ baseUrl }}/index</div>
+						</section>
+						<section>
+							<div class="inner-label">请求方式</div>
+							<div class="vinner-value">GET</div>
+						</section>
+						<section>
+							<div class="inner-label">请求Query参数</div>
+							<div class="inner-value">
+								<div>itemCode:{{ ruleForm.itemCode }}</div>
+							</div>
+						</section>
+					</div>
+				</div>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import { reactive, toRefs, onMounted, defineComponent } from 'vue';
+import { reactive, toRefs, onMounted, defineComponent } from 'vue'
 
 
-import api from '/@/api/modules/assess';
+import api from '/@/api/modules/assess'
 
 
 // 定义接口来定义对象的类型
 // 定义接口来定义对象的类型
 interface RuleFormRow {
 interface RuleFormRow {
-  title: string;
-  explain: string;
-  config: string;
-  item_code: string;
-  targets: Array<any>
+	title: string
+	explain: string
+	config: string
+	itemCode: string
+	targets: Array<any>
 }
 }
 interface ItemState {
 interface ItemState {
-  isShowDialog: boolean;
-  ruleForm: RuleFormRow;
-  baseUrl: string
+	isShowDialog: boolean
+	ruleForm: RuleFormRow
+	baseUrl: string
 }
 }
 
 
 export default defineComponent({
 export default defineComponent({
-  name: 'systemAddUser',
-  setup() {
-    const state = reactive<ItemState>({
-      isShowDialog: false,
-      ruleForm: {
-        title: '', // 评价名称
-        explain: '', // 描述
-        config: '',
-        item_code: '',
-        targets: []
-      },
-      baseUrl: import.meta.env.VITE_ASSESS_URL
-    });
-    // 打开弹窗
-    const openDialog = (row: any) => {
-      api.getList({ itemcode: row.item_code }).then((res: any) => {
-        state.ruleForm = res
-        state.isShowDialog = true;
-
-      });
-    };
-    // 关闭弹窗
-    const closeDialog = () => {
-      state.isShowDialog = false;
-    };
-    // 取消
-    const onCancel = () => {
-      closeDialog();
-    };
-    // 新增
-    const onSubmit = () => {
-      closeDialog();
-    };
-    // 初始化组织数据
-    const initTableData = () => {
-
-    };
-    // 页面加载时
-    onMounted(() => {
-      initTableData();
-    });
-    return {
-      openDialog,
-      closeDialog,
-      onCancel,
-      onSubmit,
-      ...toRefs(state),
-    };
-  },
-});
+	name: 'systemAddUser',
+	setup() {
+		const state = reactive<ItemState>({
+			isShowDialog: false,
+			ruleForm: {
+				title: '', // 评价名称
+				explain: '', // 描述
+				config: '',
+				itemCode: '',
+				targets: [],
+			},
+			baseUrl: import.meta.env.VITE_NGINX_PROXY + import.meta.env.VITE_API_SUFFIX_URL + '/totalIndex/assess',
+		})
+		// 打开弹窗
+		const openDialog = (row: any) => {
+			api.getItem(row.itemCode).then((res: any) => {
+				state.ruleForm = res
+				state.isShowDialog = true
+			})
+		}
+		// 关闭弹窗
+		const closeDialog = () => {
+			state.isShowDialog = false
+		}
+		// 取消
+		const onCancel = () => {
+			closeDialog()
+		}
+		// 新增
+		const onSubmit = () => {
+			closeDialog()
+		}
+		// 初始化组织数据
+		const initTableData = () => {}
+		// 页面加载时
+		onMounted(() => {
+			initTableData()
+		})
+		return {
+			openDialog,
+			closeDialog,
+			onCancel,
+			onSubmit,
+			...toRefs(state),
+		}
+	},
+})
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>

+ 8 - 8
src/views/modules/assess/component/editItem.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
 	<div class="system-add-user-container">
 	<div class="system-add-user-container">
-		<el-dialog :title="ruleForm.item_code ? '编辑指标' : '新增指标'" v-model="isShowDialog" width="769px">
+		<el-dialog :title="ruleForm.itemCode ? '编辑指标' : '新增指标'" v-model="isShowDialog" width="769px">
 			<el-form ref="ruleFormRef" :rules="rules" :model="ruleForm" label-width="90px">
 			<el-form ref="ruleFormRef" :rules="rules" :model="ruleForm" label-width="90px">
 				<el-form-item label="评价名称" prop="title" class="mb20">
 				<el-form-item label="评价名称" prop="title" class="mb20">
 					<el-input size="small" v-model="ruleForm.title" placeholder="请输入评价名称" clearable></el-input>
 					<el-input size="small" v-model="ruleForm.title" placeholder="请输入评价名称" clearable></el-input>
@@ -82,7 +82,7 @@ interface ItemState {
 		title: string;
 		title: string;
 		explain: string;
 		explain: string;
 		config: string;
 		config: string;
-		item_code: string;
+		itemCode: string;
 		targets: Array<any>
 		targets: Array<any>
 	};
 	};
 	tableData: {
 	tableData: {
@@ -108,7 +108,7 @@ export default defineComponent({
 				title: '', // 评价名称
 				title: '', // 评价名称
 				explain: '', // 描述
 				explain: '', // 描述
 				config: '',
 				config: '',
-				item_code: '',
+				itemCode: '',
 				targets: []
 				targets: []
 			},
 			},
 			// deptData: [], // 组织数据
 			// deptData: [], // 组织数据
@@ -132,7 +132,7 @@ export default defineComponent({
 		// 打开弹窗
 		// 打开弹窗
 		const openDialog = (row: any) => {
 		const openDialog = (row: any) => {
 			if (row) {
 			if (row) {
-				api.getList({ itemcode: row.item_code }).then((res: any) => {
+				api.getItem(row.itemCode).then((res: any) => {
 					state.ruleForm = res;
 					state.ruleForm = res;
 					state.tableData.data = res.targets
 					state.tableData.data = res.targets
 					state.isShowDialog = true;
 					state.isShowDialog = true;
@@ -142,7 +142,7 @@ export default defineComponent({
 					title: '', // 评价名称
 					title: '', // 评价名称
 					explain: '', // 描述
 					explain: '', // 描述
 					config: '',
 					config: '',
-					item_code: '',
+					itemCode: '',
 					targets: []
 					targets: []
 				},
 				},
 					state.tableData.data = [];
 					state.tableData.data = [];
@@ -163,8 +163,8 @@ export default defineComponent({
 			await formEl.validate((valid, fields) => {
 			await formEl.validate((valid, fields) => {
 				if (valid) {
 				if (valid) {
 					state.ruleForm.targets = state.tableData.data
 					state.ruleForm.targets = state.tableData.data
-
-					api.setItem(state.ruleForm).then((res: any) => {
+					const theApi = (state.ruleForm.itemCode ? api.editItem : api.setItem)
+					theApi(state.ruleForm).then((res: any) => {
 						ElMessage.success('提交成功');
 						ElMessage.success('提交成功');
 						emit('fetchList');
 						emit('fetchList');
 						closeDialog(); // 关闭弹窗
 						closeDialog(); // 关闭弹窗
@@ -183,7 +183,7 @@ export default defineComponent({
 		};
 		};
 		// 打开任务接口弹窗
 		// 打开任务接口弹窗
 		const onRowDetail = (row: TableDataRow) => {
 		const onRowDetail = (row: TableDataRow) => {
-			setTaskRef.value.openDialog(row, state.ruleForm.item_code);
+			setTaskRef.value.openDialog(row, state.ruleForm.itemCode);
 		};
 		};
 		// 接收数据
 		// 接收数据
 		const handleChange = (data: any, index: any, isEdit: Boolean) => {
 		const handleChange = (data: any, index: any, isEdit: Boolean) => {

+ 15 - 15
src/views/modules/assess/component/setTask.vue

@@ -19,8 +19,8 @@
 						</el-form-item>
 						</el-form-item>
 					</el-col>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-						<el-form-item class="inline-row" label="取值周期:" prop="get_time">
-							<el-input v-model="ruleForm.get_time" placeholder="请输入取值周期" clearable></el-input>
+						<el-form-item class="inline-row" label="取值周期:" prop="getTime">
+							<el-input v-model="ruleForm.getTime" placeholder="请输入取值周期" clearable></el-input>
 							<div class="tip" @click="isShow = !isShow">
 							<div class="tip" @click="isShow = !isShow">
 								<span v-if="!isShow" class="ico_down"></span>
 								<span v-if="!isShow" class="ico_down"></span>
 								<span v-else class="ico_up"></span>
 								<span v-else class="ico_up"></span>
@@ -160,14 +160,14 @@ interface RuleFormRow {
 	uri: string;
 	uri: string;
 	state: number;
 	state: number;
 	object: string;
 	object: string;
-	get_time: string;
+	getTime: string;
 
 
 }
 }
 interface ItemState {
 interface ItemState {
 	isShowDialog: boolean;
 	isShowDialog: boolean;
 	ruleForm: RuleFormRow;
 	ruleForm: RuleFormRow;
 	status: number;
 	status: number;
-	item_code: string;
+	itemCode: string;
 	isShow: boolean;
 	isShow: boolean;
 	testRes: string;
 	testRes: string;
 }
 }
@@ -182,10 +182,10 @@ export default defineComponent({
 				uri: '', // URL
 				uri: '', // URL
 				state: 1, // 是否启用
 				state: 1, // 是否启用
 				object: '', // 取值项
 				object: '', // 取值项
-				get_time: '', // 取值周期
+				getTime: '', // 取值周期
 			},
 			},
 			status: 0,
 			status: 0,
-			item_code: '',
+			itemCode: '',
 			isShow: false,
 			isShow: false,
 			testRes: ''
 			testRes: ''
 		});
 		});
@@ -194,7 +194,7 @@ export default defineComponent({
 		const rules = reactive<FormRules>({
 		const rules = reactive<FormRules>({
 			uri: [{ required: true, message: '请输入URL', trigger: 'blur' }],
 			uri: [{ required: true, message: '请输入URL', trigger: 'blur' }],
 			object: [{ required: true, message: '请输入取值项', trigger: 'blur' }],
 			object: [{ required: true, message: '请输入取值项', trigger: 'blur' }],
-			get_time: [{ required: true, message: '请输入取值周期', trigger: 'blur' }],
+			getTime: [{ required: true, message: '请输入取值周期', trigger: 'blur' }],
 		});
 		});
 		const onSubmit = async (formEl: FormInstance | undefined) => {
 		const onSubmit = async (formEl: FormInstance | undefined) => {
 			if (!formEl) return;
 			if (!formEl) return;
@@ -207,7 +207,7 @@ export default defineComponent({
 						// 新增
 						// 新增
 						let params = {
 						let params = {
 							...state.ruleForm,
 							...state.ruleForm,
-							item_code: state.item_code,
+							itemCode: state.itemCode,
 						};
 						};
 						addDataSourceInfo(params);
 						addDataSourceInfo(params);
 					}
 					}
@@ -231,11 +231,11 @@ export default defineComponent({
 			});
 			});
 		};
 		};
 		// 打开弹窗
 		// 打开弹窗
-		const openDialog = (row: RuleFormRow, item_code: string) => {
+		const openDialog = (row: RuleFormRow, itemCode: string) => {
 			// state.ruleForm = row;
 			// state.ruleForm = row;
 			state.isShowDialog = true;
 			state.isShowDialog = true;
 			state.testRes = ''
 			state.testRes = ''
-			getDataSourceInfo(row, item_code);
+			getDataSourceInfo(row, itemCode);
 		};
 		};
 		// 检测
 		// 检测
 		const test = () => {
 		const test = () => {
@@ -248,12 +248,12 @@ export default defineComponent({
 			});
 			});
 		};
 		};
 		// 获取数据源配置数据
 		// 获取数据源配置数据
-		const getDataSourceInfo = (row: any, item_code: string) => {
+		const getDataSourceInfo = (row: any, itemCode: string) => {
 			let params = {
 			let params = {
-				item_code: item_code,
-				target_name: row.name,
+				itemCode: itemCode,
+				target: row.name,
 			};
 			};
-			state.item_code = item_code;
+			state.itemCode = itemCode;
 			api.getDataSourceInfo(params).then((res: any) => {
 			api.getDataSourceInfo(params).then((res: any) => {
 				if (res) {
 				if (res) {
 					// 编辑
 					// 编辑
@@ -266,7 +266,7 @@ export default defineComponent({
 						uri: '', // URL
 						uri: '', // URL
 						state: 1, // 是否启用
 						state: 1, // 是否启用
 						object: '', // 取值项
 						object: '', // 取值项
-						get_time: '', // 取值周期
+						getTime: '', // 取值周期
 					};
 					};
 					state.status = 2;
 					state.status = 2;
 				}
 				}

+ 3 - 3
src/views/modules/assess/index.vue

@@ -50,7 +50,7 @@ interface TableDataRow {
   title: string;
   title: string;
   explain: string;
   explain: string;
   config: string;
   config: string;
-  item_code: string;
+  itemCode: string;
   targets: Array<any>
   targets: Array<any>
   // department: string[];
   // department: string[];
   // phone: string;
   // phone: string;
@@ -130,13 +130,13 @@ export default defineComponent({
     };
     };
     // 删除
     // 删除
     const onRowDel = (row: TableDataRow) => {
     const onRowDel = (row: TableDataRow) => {
-      ElMessageBox.confirm(`此操作将永久删除指数:“${row.title}”是否继续?`, '提示', {
+      ElMessageBox.confirm(`此操作将永久删除指数:“${row.title}”,是否继续?`, '提示', {
         confirmButtonText: '确认',
         confirmButtonText: '确认',
         cancelButtonText: '取消',
         cancelButtonText: '取消',
         type: 'warning',
         type: 'warning',
       })
       })
         .then(() => {
         .then(() => {
-          api.deleteItem({ itemcode: row.item_code }).then(() => {
+          api.deleteItem({ itemCode: row.itemCode }).then(() => {
             fetchList()
             fetchList()
             ElMessage.success('删除成功');
             ElMessage.success('删除成功');
           });
           });