Jelajahi Sumber

修改审核

tengmingxue 2 tahun lalu
induk
melakukan
362c2b95e3

+ 2 - 2
src/api/resource/examine.ts

@@ -2,7 +2,7 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-09-11 19:36:34
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-09-22 15:02:17
+ * @LastEditTime: 2023-09-24 17:15:11
  * @FilePath: \xld-gis-admin\src\api\resource\examine.ts
  * @Description: 流程配置信息api
  */
@@ -70,7 +70,7 @@ export const queryFlowInfo = async(params) => {
             url: Api.SelectLowConfig,
             params,
             headers: {
-                'Content-Type': 'application/json;charset=UTF-8'
+                'Content-Type': 'application/json;charset=UTF-8',
             },
         }).then((res) => {
             const result = (res.resp_code === 0) ? res.datas : null

+ 8 - 2
src/api/resource/files.ts

@@ -2,14 +2,15 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-08-15 11:20:48
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-08-30 13:49:12
+ * @LastEditTime: 2023-09-24 16:36:00
  * @FilePath: \xld-gis-admin\src\api\resource\scene.ts
  * @Description: 文件资源接口
  */
 import { defHttp } from '/@/utils/http/axios';
 import { session } from "/@/utils/Memory.js";
 enum Api {
-    Login = '/callProvider'
+    Login = '/callProvider',
+    UploadFiles = '/datastore/file/uploadFile/1fcf0fc166206ceb7f2780302ec8f854',
 }
 const interfaceType = { apiUrl2: true };
 
@@ -32,3 +33,8 @@ export function list() {
 }
 
 
+
+
+
+
+

+ 39 - 1
src/api/resource/map.ts

@@ -2,7 +2,7 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-08-15 11:20:48
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-09-23 17:41:20
+ * @LastEditTime: 2023-09-24 20:54:14
  * @FilePath: \xld-gis-admin\src\api\resource\map.ts
  * @Description: 地图资源接口
  */
@@ -158,6 +158,25 @@ export function insertService(params) {
     })
 }
 
+/**
+ * @description:新增文件资源
+ */
+ export function insertFilesService(params) {
+    if (!params) return
+    const str = JSON.stringify(params)
+    const formData = new FormData();
+    formData.append("interfaceName", "antu.space.provider.sservicebase.ServiceBaseMetaDataViewProvider");
+    formData.append("methodName", "insertList");
+    formData.append("args[]", session.getItem('tokenV2'));
+    formData.append("args[]", str)
+    return new Promise<void>((resolve, reject) => {
+        defHttp.post({ url: Api.Login, params: formData, ...interfaceType })
+            .then((r) => {
+                resolve(r);
+            })
+    })
+}
+
 /**
  * @description:根据资源id查询
  */
@@ -217,3 +236,22 @@ export function deleteService(param) {
     })
 }
 
+
+/**
+ * @description:删除资源
+ */
+ export function deleteBatchService(param) {
+    debugger
+    if (!param) return
+    const formData = new FormData();
+    formData.append("interfaceName", "antu.space.provider.sservicebase.ServiceBaseMetaDataViewProvider");
+    formData.append("methodName", "delete");
+    formData.append("args[]", session.getItem('tokenV2'));
+    formData.append("args[]", param)
+    return new Promise<void>((resolve, reject) => {
+        defHttp.post({ url: Api.Login, params: formData, ...interfaceType })
+            .then((r) => {
+                resolve(r);
+            })
+    })
+}

+ 6 - 5
src/views/dataAdmin/dataAdmin/configProcess/configData.js

@@ -2,7 +2,7 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-08-28 21:12:52
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-09-21 14:46:32
+ * @LastEditTime: 2023-09-24 19:26:33
  * @FilePath: \xld-gis-admin\src\views\dataAdmin\dataAdmin\configProcess\configData.js
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -73,10 +73,11 @@ export const busType = [
   { value: '1', label: '场景资源上传' },
   { value: '2', label: '文件资源上传' },
   { value: '3', label: '组件资源上传' },
-  { value: '4', label: '地图资源申请' },
-  { value: '5', label: '场景资源申请' },
-  { value: '6', label: '文件资源申请' },
-  { value: '7', label: '组件资源申请' },
+  { value: '4', label: '地图资源授权' },
+  { value: '5', label: '场景资源授权' },
+  { value: '6', label: '文件资源授权' },
+  { value: '7', label: '组件资源授权' },
+  { value: '8', label: '接口授权' },
 ]
 
 /**

+ 137 - 11
src/views/dataAdmin/dataAdmin/fileResourceUpload/AddMethod.vue

@@ -26,8 +26,9 @@
                 :multiple="true"
                 :fileList="fileList"
                 action=""
-                :showUploadList="true"
+                :showUploadList="false"
                 :customRequest="() => {}"
+                @change="fileChange"
               >
                 <a-button type="primary">
                   <upload-outlined></upload-outlined>
@@ -39,7 +40,9 @@
               </a-upload>
             </template>
             <template #upload-table>
-              <upload-file-list :fileList="fileList"></upload-file-list>
+              <div style="height: auto; width: 100%; padding: 0 20px">
+                <upload-file-list :fileList="fileList"></upload-file-list>
+              </div>
             </template>
           </BasicForm>
         </a-tab-pane>
@@ -63,6 +66,9 @@ import { PlusOutlined } from '@ant-design/icons-vue';
 import { addFileResource } from '../../api/fileUploadApi';
 import UploadFileList from './uploadFileList.vue';
 import FlowStep from '../flowStep/index.vue';
+import { update } from '/@/api/dataAdmin/assembly';
+import { insertFilesService, updateService } from '/@/api/resource/map';
+import { session } from '/@/utils/Memory.js';
 
 export default defineComponent({
   name: 'AccountModal',
@@ -85,7 +91,9 @@ export default defineComponent({
     const isUpdate = ref(true);
     const rowId = ref('');
     const postData = reactive({});
-    const fileList = [];
+    const fileList = ref([]);
+    const fileArray = ref([]);
+    const { createMessage } = useMessage();
     onMounted(async () => {});
 
     const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
@@ -101,6 +109,7 @@ export default defineComponent({
       await resetFields();
       setModalProps({ confirmLoading: false });
       isUpdate.value = !!data?.isUpdate;
+      //修改
       if (unref(isUpdate)) {
         rowId.value = data.record.id;
         setFieldsValue(data.record);
@@ -109,24 +118,91 @@ export default defineComponent({
     const getTitle = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
 
     watch(
-      () => fileList,
+      () => fileList.value,
       (op) => {
-        console.log('文件改变', op);
+        console.log('文件改变-----', op);
       }
     );
     async function handleSubmit() {
       setModalProps({ confirmLoading: true });
       try {
-        const { createMessage } = useMessage();
-        const values = await validate(['parentId']);
+        const values = await validate();
         Object.assign(postData, values);
+        const userinfo = session.getItem('userInfo');
+        const validateValue = validateFiles();
+        if (!validateValue){
+          createMessage.warning('请维护完整资源编码!');
+          return;
+        }
 
         console.log('准备传递的参数' + JSON.stringify(postData));
+        if (unref(isUpdate)) {
+        } else {
+          const servicebase = Object.assign(
+            {
+              name: values.servicename, // 资源名称
+              thumbnail: '', //缩略图名称-------------根据上传的缩略图更新
+              workSpace: '', //工作空间
+              bz: '', //备注
+              publisher: userinfo?.EMPLOYEE?.NAME, //发布者
+              username: userinfo?.EMPLOYEE?.NAME, //用户名称
+              userid: userinfo?.EMPLOYEE?.EMPLOYEE_ID, //用户id
+            },
+            values
+          );
+          const metadata = Object.assign(
+            {
+              thumbnail: '', //缩略图名称-------------根据上传的缩略图更新
+              workSpace: '', //工作空间
+              publisher: userinfo?.EMPLOYEE?.NAME, //发布者
+              username: userinfo?.EMPLOYEE?.NAME, //用户名称
+              userid: userinfo?.EMPLOYEE?.EMPLOYEE_ID, //用户id
+            },
+            values
+          );
+          let formDataList = [];
+          fileList.value.map((item) => {
+            const base = Object.assign(
+              {
+                name: item['fileName'],
+                mapingurl_show: item['fileId'],
+                mapingurl: item['fileId'],
+                fileId: item['fileId'],
+                format: item['fileFormat'],
+                servicename: item['fileName'],
+                servicealiasname: item['fileCode'],
+                fileListUrls: item['fileId'],
+              },
+              servicebase
+            );
+            const meta = Object.assign(
+              {
+                name: item['fileName'],
+                mapingurl_show: item['fileId'],
+                mapingurl: item['fileId'],
+                fileId: item['fileId'],
+                format: item['fileFormat'],
+                servicename: item['fileName'],
+                servicealiasname: item['fileCode'],
+                fileListUrls: item['fileId'],
+              },
+              metadata
+            );
 
-        await addFileResource(paramsToFormData(postData as any), unref(isUpdate));
-        closeModal();
-        emit('success');
-        createMessage.success(unref(isUpdate) ? '编辑成功' : '新增成功');
+            let postFormData = {
+              type: 'DR',
+              servicebase: base,
+              metadata: meta,
+            };
+            formDataList.push(postFormData);
+          });
+          const res = await insertFilesService(formDataList);
+          if (res && res.status === '0') {
+            closeModal();
+            emit('success');
+            createMessage.success('新增成功');
+          }
+        }
       } finally {
         setTimeout(() => {
           setModalProps({ confirmLoading: false });
@@ -191,7 +267,54 @@ export default defineComponent({
       await resetFields();
     };
 
+    /**
+     * 上传文件
+     */
+    const fileChange = async (file, files, event) => {
+      const formData = new FormData();
+      formData.append('file', file.file.originFileObj);
+      update(formData, session.getItem('sysFild').dirId).then((r) => {
+        if (r && r['resp_code'] === 0) {
+          const datas = r['datas'] as any;
+          const mapingurl = `${datas.id},${datas.dirId}`;
+          const objFile = {
+            fileId: datas.id,
+            fileName: datas.fileName.split('.')[0], //文件名称
+            fileFormat: datas.format, //文件格式
+            fileCode: '', //文件编码
+            thumbnail: '', //缩略图
+            status: '上传成功', //状态
+            mapingurl: mapingurl,
+            file: file,
+          };
+          fileArray.value.push(objFile);
+          fileList.value = [...fileArray.value];
+          //console.log('上传文件', file, files, event, fileList);
+        } else {
+          createMessage.error('文件上传失败!');
+        }
+      });
+    };
+
+    /**
+     * 校验文件完整性
+     */
+    const validateFiles = () => {
+      if (fileList.value.length === 0) {
+        createMessage.warning('请上传文件');
+        return false;
+      }
+      let flag = true;
+      
+      //检查是否维护完整信息
+      fileList.value.map((item) => {
+        if (item['fileCode'] === '') flag = false;
+      });
+      return flag;
+    };
+
     return {
+      createMessage,
       current,
       activeKey,
       registerModal,
@@ -206,6 +329,9 @@ export default defineComponent({
       menuClick,
       show1,
       fileList,
+      fileArray,
+      fileChange,
+      validateFiles,
     };
   },
 });

+ 89 - 61
src/views/dataAdmin/dataAdmin/fileResourceUpload/fileUploadData.js

@@ -1,4 +1,4 @@
-import { serviceTags, serviceTypes, checkStatus,EPSGCodes,sysCoors,secrets,respDept,collectDept } from '../sysDic'
+import { serviceTags, serviceTypes, checkStatus, EPSGCodes, sysCoors, secrets, respDept, collectDept,ApplProcesses } from '../sysDic'
 export const columns = [
   {
     title: '资源编号',
@@ -100,7 +100,7 @@ export const accountFormSchema = [
     },
   },
   {
-    field: 'parentId',
+    field: 'servicetype',
     label: '服务类型',
     required: true,
     component: 'Select',
@@ -112,12 +112,11 @@ export const accountFormSchema = [
         value: 'id',
       },
       maxTagCount: 10,
-      getPopupContainer: () => document.body,
       options: serviceTypes
     },
   },
   {
-    field: 'parentId',
+    field: 'keywords',
     label: '系统标签',
     required: true,
     component: 'Select',
@@ -129,12 +128,11 @@ export const accountFormSchema = [
         value: 'value',
       },
       maxTagCount: 10,
-      getPopupContainer: () => document.body,
-      options:serviceTags
+      options: serviceTags
     },
   },
   {
-    field: 'lymc',
+    field: 'serviceversion',
     label: '数据版本',
     component: 'Input',
     colProps: { span: 12 },
@@ -142,41 +140,33 @@ export const accountFormSchema = [
       placeholder: '请输入',
     },
   },
+
   {
-    field: 'lymc',
-    label: '运行状态',
-    component: 'Input',
-    colProps: { span: 12 },
-    componentProps: {
-      placeholder: '请输入',
-    },
-  },
-  {
-    field: 'lymc',
+    field: 'description',
     label: '资源描述',
     component: 'Input',
-    colProps: { span: 24 },
+    colProps: { span: 12 },
     componentProps: {
       placeholder: '请输入',
     },
   },
   {
-    field: 'lymc',
+    field: 'keepingunit',
     label: '保管部门',
     component: 'Select',
     colProps: { span: 12 },
     componentProps: {
       replaceFields: {
-        title: 'name',
-        key: 'code',
-        value: 'code',
+        title: 'label',
+        key: 'value',
+        value: 'value',
       },
       maxTagCount: 10,
-      options:collectDept
+      options: collectDept
     },
-  }, 
+  },
   {
-    field: 'parentId',
+    field: 'rboffice',
     label: '责任科室',
     required: true,
     component: 'Select',
@@ -188,11 +178,11 @@ export const accountFormSchema = [
         value: 'code',
       },
       maxTagCount: 10,
-      options:respDept
+      options: respDept
     },
   },
   {
-    field: 'lymc',
+    field: 'secretlevel',
     label: '密级',
     component: 'lect',
     colProps: { span: 12 },
@@ -203,25 +193,25 @@ export const accountFormSchema = [
         value: 'code',
       },
       maxTagCount: 10,
-      options:secrets
+      options: secrets
     },
   }, {
-    field: 'lymc',
+    field: 'crs',
     label: '坐标系',
     component: 'Select',
     colProps: { span: 12 },
     componentProps: {
       replaceFields: {
-        title: 'name',
-        key: 'id',
-        value: 'id',
+        title: 'label',
+        key: 'value',
+        value: 'value',
       },
       maxTagCount: 10,
-      options:sysCoors
+      options: sysCoors
     },
   },
   {
-    field: 'lymc',
+    field: 'dataScope',
     label: '数据范围',
     component: 'Input',
     colProps: { span: 12 },
@@ -230,7 +220,7 @@ export const accountFormSchema = [
     },
   },
   {
-    field: 'lymc',
+    field: 'source',
     label: '数据来源',
     component: 'Input',
     colProps: { span: 12 },
@@ -239,13 +229,13 @@ export const accountFormSchema = [
     },
   },
   {
-    field: 'epsgcode',
+    field: 'epsgCode',
     label: 'EPSC CODE',
     required: true,
     component: 'Select',
-    colProps: { span: 24 },
+    colProps: { span: 12 },
     componentProps: {
-      placeholder: '请输入EPSC CODE', 
+      placeholder: '请输入EPSC CODE',
       replaceFields: {
         title: 'name',
         key: 'code',
@@ -255,9 +245,24 @@ export const accountFormSchema = [
       options: EPSGCodes
     },
   },
-
   {
-    field: 'sjms',
+    field: 'shsqlc',
+    label: '适合申请流程',
+    required: false,
+    component: 'Select',
+    colProps: { span: 12 },
+    componentProps: {
+      replaceFields: {
+        title: 'label',
+        key: 'value',
+        value: 'value',
+      },
+      maxTagCount: 10,
+      options: ApplProcesses
+    },
+  },
+  {
+    field: 'bz',
     label: '备注:',
     component: 'InputTextArea',
     colProps: { span: 24 },
@@ -268,10 +273,24 @@ export const accountFormSchema = [
   },
 
   {
-    field: 'status',
+    field: 'runtimestatus',
+    label: '运行状态',
+    component: 'RadioButtonGroup',
+    colProps: { span: 6 },
+    defaultValue: '0',
+    componentProps: {
+      options: [
+        { label: "启用", value: '0' },
+        { label: "禁用", value: '1' },
+      ],
+    },
+  },
+
+  {
+    field: 'ispublic',
     label: "是否公开", //状态
     component: 'RadioButtonGroup',
-    colProps: { span: 8 },
+    colProps: { span: 6 },
     defaultValue: '0',
     componentProps: {
       options: [
@@ -282,10 +301,10 @@ export const accountFormSchema = [
   },
 
   {
-    field: 'status',
+    field: 'searched',
     label: "是否共享", //状态
     component: 'RadioButtonGroup',
-    colProps: { span: 8 },
+    colProps: { span: 6 },
     defaultValue: '0',
     componentProps: {
       options: [
@@ -296,10 +315,10 @@ export const accountFormSchema = [
   },
 
   {
-    field: 'status',
+    field: 'isShow',
     label: "是否展开", //状态
     component: 'RadioButtonGroup',
-    colProps: { span: 8 },
+    colProps: { span: 6 },
     defaultValue: '0',
     componentProps: {
       options: [
@@ -330,7 +349,7 @@ export const accountFormSchema = [
     field: 'version',
     label: '版本',
     component: 'TreeSelect',
-    colProps: { span: 24 },
+    colProps: { span: 8 },
     componentProps: {
       replaceFields: {
         title: 'name',
@@ -345,7 +364,7 @@ export const accountFormSchema = [
     field: 'versionCode',
     label: '版本号',
     component: 'Input',
-    colProps: { span: 24 },
+    colProps: { span: 8 },
     componentProps: {
       placeholder: '请输入版本号',
     },
@@ -354,7 +373,7 @@ export const accountFormSchema = [
     field: 'isnew',
     label: "是否最新版本", //状态
     component: 'RadioButtonGroup',
-    colProps: { span: 24 },
+    colProps: { span: 8 },
     defaultValue: '0',
     componentProps: {
       options: [
@@ -424,36 +443,45 @@ export const accountFormSchema2 = [
 
 
 export const fileFields = [
-  {
-    title: '序号',
-    dataIndex: 'xh',
-    width: '10%',
-    align: 'center'
+  // {
+  //   width: '10%',
+  //   title: "序号",
+  //   dataIndex: "key",
+  //   key: "key",
+  //   align: "center",
+  //   customRender: (text, record, index) => `${index + 1}`,//此处为重点
+  // },
+  {
+    title: "序号",
+    dataIndex: "key",
+    key: "key",
+    align: "center",
+    customRender: (text, record, index) => `${index + 1}`,//此处为重点
   },
   {
     title: '资源名称',
-    dataIndex: 'sname',
+    dataIndex: 'fileName',
     width: '20%',
-    slots: { customRender: 'sname' },
+    slots: { customRender: 'fileName' },
   },
   {
     title: '资源编码',
-    dataIndex: 'scode',
+    dataIndex: 'fileCode',
     width: '20%',
-    slots: { customRender: 'scode' },
+    slots: { customRender: 'fileCode' },
     align: 'center'
   },
   {
     title: '格式',
-    dataIndex: 'type',
+    dataIndex: 'fileFormat',
     width: '10%',
     align: 'center'
   },
   {
     title: '缩略图',
-    dataIndex: 'operation',
+    dataIndex: 'thumbnail',
     width: '20%',
-    slots: { customRender: 'opera' },
+    slots: { customRender: 'thumbnail' },
     align: 'center'
   },
   {

+ 20 - 3
src/views/dataAdmin/dataAdmin/fileResourceUpload/index.vue

@@ -46,7 +46,7 @@
             ifShow: true,
             popConfirm: {
               title: '是否确认删除',
-              confirm: handleDeleteOrBatchDelete.bind(null, record),
+              confirm: handleDelete.bind(null, record),
             },
           },
         ]" />
@@ -86,10 +86,12 @@ import { useModal } from '/@/components/Modal';
 import { Popconfirm } from 'ant-design-vue';
 import { getFileListByPage, delFileResource } from '../../api/fileUploadApi';
 import { columns, searchFormSchema } from './fileUploadData';
+import { useMessage } from '/@/hooks/web/useMessage';
 import { list } from '/@/api/resource/files';
 import { useBatchDelete } from '/@/hooks/web/useBatchDelete';
 import AddMethod from './AddMethod.vue';
 import Moment from 'moment';
+import { deleteService, deleteBatchService,queryResourceById } from '/@/api/resource/map';
 
 export default defineComponent({
   name: 'mapUpload',
@@ -103,6 +105,7 @@ export default defineComponent({
       editAuth: bottomAuthority + 'fileuploadEdit', //编辑权限控制
     };
     const moment = Moment;
+    const { createMessage } = useMessage();
     // 新增和编辑界面
     // const [registerDrawer, { openDrawer }] = useDrawer();
     const [registerModal, { openModal: openModal }] = useModal();
@@ -120,7 +123,7 @@ export default defineComponent({
       columns,
       // 查询条件框配置
       formConfig: {
-        labelWidth: 120,
+        labelWidth: 90,
         schemas: searchFormSchema,
       },
       useSearchForm: true,
@@ -148,7 +151,7 @@ export default defineComponent({
     });
     //
     const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions, resetSelectedRowKeys } =
-      useBatchDelete(delFileResource, handleSuccess, setProps);
+      useBatchDelete(deleteBatchService, handleSuccess, setProps);
     //
     selectionOptions.rowSelection.getCheckboxProps = (record) => {
       // Demo:status为1的选择框禁用
@@ -174,10 +177,23 @@ export default defineComponent({
       //   record,
       //   isUpdate: true,
       // });
+      openModal(true, {
+        record,
+        isUpdate: true,
+      });
+    }
+    //删除
+    async function handleDelete(record){
+      const res = await deleteService(record.serviceid)
+      if(res && res.status==='0'){
+        reload();
+        createMessage.success('删除成功!')
+      }
     }
 
     return {
       moment,
+      createMessage,
       registerModal,
       authList,
       registerTable,
@@ -185,6 +201,7 @@ export default defineComponent({
       handleEdit,
       handleSuccess,
       hasBatchDelete,
+      handleDelete,
       handleDeleteOrBatchDelete,
     };
   },

+ 25 - 31
src/views/dataAdmin/dataAdmin/fileResourceUpload/uploadFileList.vue

@@ -1,5 +1,11 @@
 <template>
-  <a-table :columns="columns" :dataSource="dataSource" bordered :customRow="rowClick" :pagination="false">
+  <a-table
+    :columns="columns"
+    :dataSource="fileList"
+    bordered
+    :customRow="rowClick"
+    :pagination="false"
+  >
     <template v-for="col in ['scode', 'sname']" #[col]="{ text, record }" :key="col">
       <span>
         <a-input
@@ -13,7 +19,7 @@
         </template>
       </span>
     </template>
-    <template #opera="{ record }">
+    <template #thumbnail="{ record }">
       <a-upload v-model:file-list="imgList" name="file" :multiple="false" action="">
         <span
           style="
@@ -27,6 +33,10 @@
         >
       </a-upload>
     </template>
+
+    <template #fileCode="{ record }">
+      <a-input v-model:value="record.fileCode" placeholder="请输入编码" />
+    </template>
     <template #operation="{ record }">
       <DeleteOutlined
         style="
@@ -42,48 +52,32 @@
   </a-table>
 </template>
   <script lang="ts">
-import { defineComponent, ref, computed, unref, reactive, onMounted,watch } from 'vue';
+import { defineComponent, ref, computed, unref, reactive, onMounted, watch } from 'vue';
 import { DeleteOutlined } from '@ant-design/icons-vue';
 import { cloneDeep } from 'lodash-es';
 import { fileFields } from './fileUploadData';
 const props = {
-    fileList:{type:Array,default:[]}
-}
+  fileList: { type: Array, default: [] },
+};
 export default defineComponent({
   name: 'AccountModal',
   components: { DeleteOutlined },
   emits: ['success', 'register'],
   props,
   setup(props, { emit }) {
-    const fileList =  ref(props.fileList);
-    let imgList = ref([])
+    const fileList = ref(props.fileList);
+    let imgList = ref([]);
     let editableData = reactive({});
     onMounted(async () => {});
     const columns = fileFields;
-    let dataSource = [
-      {
-        xh: 1,
-        key: 'A001',
-        sname: '资源名称',
-        scode: 's-001',
-        type: 'ppt',
-        operation: '',
-        status: '已提交',
-      },
-      {
-        xh: 2,
-        key: 'A002',
-        sname: '资源名称1',
-        scode: 's-002',
-        type: 'ppt',
-        operation: '',
-        status: '已提交',
-      },
-    ];
-    watch(()=>props.fileList,(list)=>{
-        fileList.value = list
-        console.log('上传数据列表',list)
-    })
+    let dataSource = [];
+    watch(
+      () => props.fileList,
+      (list) => {
+        fileList.value = list;
+        //console.log('上传数据列表', list);
+      }
+    );
 
     const rowClick = (record, index) => {
       return {

+ 1 - 1
src/views/dataAdmin/dataAdmin/mapUpload/MapSourceModal.vue

@@ -2,7 +2,7 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-08-15 16:19:10
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-09-22 17:21:08
+ * @LastEditTime: 2023-09-24 11:25:35
  * @FilePath: \xld-gis-admin\src\views\resource\map\MapSourceModal.vue
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->

+ 130 - 101
src/views/dataAdmin/dataAdmin/mapUpload/SourceDetail.vue

@@ -2,7 +2,7 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-08-15 22:08:21
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-09-23 19:05:00
+ * @LastEditTime: 2023-09-24 11:46:09
  * @FilePath: \xld-gis-admin\src\views\resource\map\SourceDetail.vue
  * @Description: 地图资源明细界面
 -->
@@ -14,7 +14,7 @@
         <a-row class="form-container">
           <a-col :span="12" class="form-col">
             <a-form-item ref="code" label="资源编码" name="code" class="label-form-item">
-              <a-input v-model:value="formState.code" :disabled="isView"/>
+              <a-input v-model:value="formState.code" :disabled="isView" />
             </a-form-item>
           </a-col>
           <a-col :span="12" class="form-col">
@@ -24,7 +24,7 @@
               name="servicename"
               class="label-form-item"
             >
-              <a-input v-model:value="formState.servicename" :disabled="isView"/>
+              <a-input v-model:value="formState.servicename" :disabled="isView" />
             </a-form-item>
           </a-col>
 
@@ -35,7 +35,7 @@
               name="servicealiasname"
               class="label-form-item"
             >
-              <a-input v-model:value="formState.servicealiasname" :disabled="isView"/>
+              <a-input v-model:value="formState.servicealiasname" :disabled="isView" />
             </a-form-item>
           </a-col>
 
@@ -63,7 +63,13 @@
 
           <a-col :span="24" class="form-col">
             <a-form-item ref="thumbnail" label="缩略图" name="thumbnail" class="label-form-item">
-              <a-upload action="" v-model:file-list="fileList" @change="uploadFilesChange" :multiple="false" :disabled="isView">
+              <a-upload
+                action=""
+                v-model:file-list="fileList"
+                @change="uploadFilesChange"
+                :multiple="false"
+                :disabled="isView"
+              >
                 <a-button style="background-color: #0671dd; color: #fff; border-radius: 4px">
                   <upload-outlined></upload-outlined>
                   文件上传
@@ -103,17 +109,17 @@
           </a-col>
           <a-col :span="24" class="form-col">
             <a-form-item ref="mapingurl" label="服务地址" name="mapingurl" class="label-form-item">
-              <a-input v-model:value="formState.mapingurl" :disabled="isView"/>
+              <a-input v-model:value="formState.mapingurl" :disabled="isView" />
             </a-form-item>
           </a-col>
           <a-col :span="12" class="form-col">
             <a-form-item ref="dataScope" label="数据范围" name="dataScope" class="label-form-item">
-              <a-input v-model:value="formState.dataScope" :disabled="isView"/>
+              <a-input v-model:value="formState.dataScope" :disabled="isView" />
             </a-form-item>
           </a-col>
           <a-col :span="12" class="form-col">
             <a-form-item ref="source" label="数据来源" name="source" class="label-form-item">
-              <a-input v-model:value="formState.source" :disabled="isView"/>
+              <a-input v-model:value="formState.source" :disabled="isView" />
             </a-form-item>
           </a-col>
 
@@ -133,7 +139,7 @@
               name="sourcetable"
               class="label-form-item"
             >
-              <a-input v-model:value="formState.formdatabase" :disabled="isView"/>
+              <a-input v-model:value="formState.formdatabase" :disabled="isView" />
             </a-form-item>
           </a-col>
 
@@ -172,7 +178,7 @@
           </a-col>
           <a-col :span="12" class="form-col">
             <a-form-item ref="source" label="发布者" name="source" class="label-form-item">
-              <a-input v-model:value="formState.publisher" disabled :disabled="isView"/>
+              <a-input v-model:value="formState.publisher" disabled :disabled="isView" />
             </a-form-item>
           </a-col>
 
@@ -183,7 +189,7 @@
               name="updatetype"
               class="label-form-item"
             >
-              <a-input v-model:value="formState.updateType" :disabled="isView"/>
+              <a-input v-model:value="formState.updateType" :disabled="isView" />
             </a-form-item>
           </a-col>
           <a-col :span="12" class="form-col">
@@ -214,6 +220,16 @@
             </a-form-item>
           </a-col>
 
+          <a-col :span="12" class="form-col">
+            <a-form-item ref="shsqlc" label="适合申请流程" name="shsqlc" class="label-form-item">
+              <a-select v-model:value="formState.shsqlc" :disabled="isView">
+                <template v-for="appl in ApplProcesses" :key="appl.value">
+                  <a-select-option :value="appl.value">{{ appl.label }}</a-select-option>
+                </template>
+              </a-select>
+            </a-form-item>
+          </a-col>
+
           <a-col :span="12" class="form-col">
             <a-form-item
               ref="runtimestatus"
@@ -230,7 +246,7 @@
             </a-form-item>
           </a-col>
 
-          <a-col :span="6" class="form-col">
+          <a-col :span="4" class="form-col">
             <a-form-item ref="public" label="是否公开" name="public" class="label-form-item">
               <a-switch
                 checked-children=""
@@ -240,7 +256,7 @@
               />
             </a-form-item>
           </a-col>
-          <a-col :span="6" class="form-col">
+          <a-col :span="4" class="form-col">
             <a-form-item ref="share" label="是否共享" name="share" class="label-form-item">
               <a-switch
                 checked-children=""
@@ -250,7 +266,7 @@
               />
             </a-form-item>
           </a-col>
-          <a-col :span="6" class="form-col">
+          <a-col :span="4" class="form-col">
             <a-form-item
               ref="externalApply"
               label="是否外部申请"
@@ -277,7 +293,12 @@
           </a-col>
 
           <a-col :span="6" class="form-col">
-            <a-form-item ref="searched" label="立即发起审核" name="searched" class="label-form-item">
+            <a-form-item
+              ref="searched"
+              label="立即发起审核"
+              name="searched"
+              class="label-form-item"
+            >
               <a-switch
                 checked-children=""
                 un-checked-children=""
@@ -323,6 +344,7 @@ import {
   respDept,
   collectDept,
   EPSGCodes,
+  ApplProcesses,
 } from '../sysDic';
 import { session } from '/@/utils/Memory.js';
 const props = {
@@ -356,7 +378,8 @@ interface FormState {
   searched: boolean;
   externalApply: boolean;
   date1: undefined;
-  immExaim: boolean;  //是否立即发起审核
+  immExaim: boolean; //是否立即发起审核
+  shsqlc: string;
 }
 export default defineComponent({
   name: 'SourceDetail',
@@ -375,6 +398,7 @@ export default defineComponent({
       respDept: respDept, //责任科室
       collectDept: collectDept, //保管部门
       EPSGCodes: EPSGCodes, //EPSGCode
+      ApplProcesses: ApplProcesses, //适合申请流程
     });
     const formRef = ref();
     const formState: UnwrapRef<FormState> = reactive({
@@ -403,7 +427,8 @@ export default defineComponent({
       searched: true,
       externalApply: true,
       date1: undefined,
-      immExaim:true,
+      immExaim: true,
+      shsqlc: '',
     });
     const moment = Moment;
     const rules = {
@@ -437,7 +462,7 @@ export default defineComponent({
       () => props.formData,
       (obj) => {
         data.detail = obj;
-        console.log('查询数据',data.detail)
+        console.log('查询数据', data.detail);
         if (data.isUpdate) setFormData();
       }
     );
@@ -459,11 +484,10 @@ export default defineComponent({
         formRef.value
           .validate()
           .then(async () => {
-            //console.log('values', formState, toRaw(formState));
             const params = setSubmitForm();
             if (params) {
               if (data.isUpdate) {
-                params['serviceid'] = data.detail.serviceid;
+                //params['serviceid'] = data.detail.serviceid;
                 const res = await updateService(params);
                 if (res && res?.status !== '-1') {
                   createMessage.success('修改地图资源成功!');
@@ -472,14 +496,13 @@ export default defineComponent({
                 } else createMessage.error('修改地图资源失败!,失败原因:' + res?.message, 1);
               } else {
                 const res = await insertService(params);
-                debugger
                 if (res && res?.status === '0') {
                   //立即发起审核
-                  if(formState.immExaim){
-                    const result = JSON.parse(res['result'])
-                    console.log('发起流程审核工作',result)
-                    const serviceid = result.sucList[0].servicebase.serviceid
-                    console.log('业务id',serviceid)
+                  if (formState.immExaim) {
+                    const result = JSON.parse(res['result']);
+                    console.log('发起流程审核工作', result);
+                    const serviceid = result.sucList[0].servicebase.serviceid;
+                    console.log('业务id', serviceid);
                   }
                   createMessage.success('新增地图资源成功!');
                   resetForm();
@@ -510,55 +533,65 @@ export default defineComponent({
       const secretlevels = secrets.find((item) => item.code === formState.secrets);
       const coor = sysCoors.find((item) => item.GEOMNAME === formState.coordinate);
       const EPSGCode = EPSGCodes.find((item) => item.code === formState.epsgcode);
+      let servicebase = {
+        publisher: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
+        username: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
+        userid: userinfo?.EMPLOYEE?.EMPLOYEE_ID, //'27AF004A-8BDN-885T-30FU-89DE3388762B',
+        servicealiasname: formState.servicealiasname, //资源别名
+        description: formState.description, //资源描述
+        ispublic: formState.public ? '1' : '0', //是否公开
+        searched: formState.searched ? '1' : '0', //是否展示
+        servicetype: formState.servicetype, //资源类型
+        externalApply: formState.externalApply ? '1' : '0', //外部申请
+        runtimestatus: formState.runtimestatus ? '1' : '0', //运行状态
+        servicename: formState.servicename, //资源名
+        mapingurl: formState.mapingurl, //服务地址
+        otherService: '',
+      };
+      let metadata = {
+        mapingurl: formState.mapingurl, //服务地址
+        name: formState.servicename, //资源名
+        servicealiasname: formState.servicealiasname, //资源别名
+        thumbnail: '',
+        description: formState.description,
+        keywords: formState.keywords,
+        servicetype: formState.servicetype, //资源类型
+        dataScope: formState.dataScope, //数据范围
+        updateType: formState.updateType, //更新方式
+        source: formState.source, //数据来源
+        formdatabase: formState.formdatabase, //数据表
+        rboffice: rboffices ? rboffices.codeName : '', //责任单位
+        keepingunit: collect ? collect.codeName : '', //保管单位
+        secretlevel: secretlevels ? secretlevels.codeName : '',
+        crs: coor ? coor.GEOMNAME : '',
+        epsgCode: EPSGCode ? EPSGCode.codeName : '',
+        workSpace: '',
+        runtimestatus: formState.runtimestatus ? '1' : '0', //运行状态
+        ishistory: '0',
+        shsqlc: formState.shsqlc,
+        urlInfo: '',
+        otherService: '',
+        bz: '',
+        ispublic: formState.public ? '1' : '0', //是否公开
+        searched: formState.searched ? '1' : '0', //是否展示
+        externalApply: formState.externalApply ? '1' : '0', //外部申请
+        isShow: formState.share ? '1' : '0',
+        publisher: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
+        username: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
+        userid: userinfo?.EMPLOYEE?.EMPLOYEE_ID, //'27AF004A-8BDN-885T-30FU-89DE3388762B',
+      };
+      if(data.isUpdate){
+        Object.assign(servicebase,{serviceid:data.detail.serviceid})
+
+        Object.assign(metadata,{
+          serviceid:data.detail.serviceid,
+          id:data.detail.id,
+        })
+      }
       return {
         type: 'MR',
-        servicebase: {
-          publisher: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
-          username: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
-          userid: userinfo?.EMPLOYEE?.EMPLOYEE_ID, //'27AF004A-8BDN-885T-30FU-89DE3388762B',
-          servicealiasname: formState.servicealiasname, //资源别名
-          description: formState.description, //资源描述
-          ispublic: formState.public ? '1' : '0', //是否公开
-          searched: formState.searched ? '1' : '0', //是否展示
-          servicetype: formState.servicetype, //资源类型
-          externalApply: formState.externalApply ? '1' : '0', //外部申请
-          runtimestatus: formState.runtimestatus ? '1' : '0', //运行状态
-          servicename: formState.servicename, //资源名
-          mapingurl: formState.mapingurl, //服务地址
-          otherService: '',
-        },
-        metadata: {
-          mapingurl: formState.mapingurl, //服务地址
-          name: formState.servicename, //资源名
-          servicealiasname: formState.servicealiasname, //资源别名
-          thumbnail: '',
-          description: formState.description,
-          keywords: formState.keywords.toString(),
-          servicetype: formState.servicetype, //资源类型
-          dataScope: formState.dataScope, //数据范围
-          updateType: formState.updateType, //更新方式
-          source: formState.source, //数据来源
-          formdatabase: formState.formdatabase, //数据表
-          rboffice: rboffices ? rboffices.codeName : '', //责任单位
-          keepingunit: collect ? collect.codeName : '', //保管单位
-          secretlevel: secretlevels ? secretlevels.codeName : '',
-          crs: coor ? coor.GEOMNAME : '',
-          epsgCode: EPSGCode ? EPSGCode.codeName : '',
-          workSpace: '',
-          runtimestatus: formState.runtimestatus ? '1' : '0', //运行状态
-          ishistory: '0',
-          shsqlc: 'ggdata',
-          urlInfo: '',
-          otherService: '',
-          bz: '',
-          ispublic: formState.public ? '1' : '0', //是否公开
-          searched: formState.searched ? '1' : '0', //是否展示
-          externalApply: formState.externalApply ? '1' : '0', //外部申请
-          isShow: formState.share ? '1' : '0',
-          publisher: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
-          username: userinfo?.EMPLOYEE?.NAME, //'系统管理员',
-          userid: userinfo?.EMPLOYEE?.EMPLOYEE_ID, //'27AF004A-8BDN-885T-30FU-89DE3388762B',
-        },
+        servicebase,
+        metadata,
         sourcetraces: [],
         dataVersionConf: {},
       };
@@ -567,48 +600,44 @@ export default defineComponent({
      * 设置表单数据
      */
     const setFormData = () => {
-      // console.log('表单数据请看', data.detail);
-      // console.log('服务类型', serviceTypes);
-      // console.log('服务标签', serviceTags);
-      // console.log('密级', secrets);
-      // console.log('坐标系', sysCoors);
-      // console.log('责任科室', respDept);
-      // console.log('保管部门', collectDept);
-      // console.log('EPSGCodes', EPSGCodes);
       formState.public = data.detail.ispublic === '1' ? true : false;
       formState.servicename = data.detail?.servicename;
-      formState.publishtime = data.detail?.publishdate ? moment(data.detail?.publishdate).format('YYYY-MM-DD HH:mm:ss'): '';
+      formState.publishtime = data.detail?.publishdate
+        ? moment(data.detail?.publishdate).format('YYYY-MM-DD HH:mm:ss')
+        : '';
       formState.publisher = data.detail?.publisher;
       formState.runtimestatus = data.detail.runtimestatus === '0' ? false : true;
       formState.servicealiasname = data.detail?.servicealiasname;
       formState.code = data.detail?.serviceid;
       formState.servicetype = data.detail?.servicetype;
-      formState.updatetime = data.detail?.updatedate ? moment(data.detail?.updatedate).format('YYYY-MM-DD HH:mm:ss') : '';
+      formState.updatetime = data.detail?.updatedate
+        ? moment(data.detail?.updatedate).format('YYYY-MM-DD HH:mm:ss')
+        : '';
       formState.coordinate = data.detail?.crs;
       formState.searched = data.detail.searched === '0' ? false : true;
-
       formState.keywords = data.detail?.keywords;
       formState.description = data.detail?.description;
-      formState.mapingurl =  data.detail?.mapingurl
-      formState.dataScope =  data.detail?.dataScope
-      formState.source =  data.detail?.source
-      formState.secrets =  data.detail?.secretlevel
-      formState.formdatabase =  data.detail?.formdatabase
-      formState.collect =  data.detail?.keepingunit
-      formState.respUnit =  data.detail?.rboffice
-      formState.updateType =  data.detail?.updateType
-      formState.epsgcode =  data.detail?.epsgCode
-      formState.share =   data.detail.servicetypepublic === '0' ? false : true
-      formState.externalApply =  data.detail.externalApply === '0' ? false : true
-      formState.immExaim =  data.detail.ishistory === '0' ? false : true
+      formState.mapingurl = data.detail?.mapingurl;
+      formState.dataScope = data.detail?.dataScope;
+      formState.source = data.detail?.source;
+      formState.secrets = data.detail?.secretlevel;
+      formState.formdatabase = data.detail?.formdatabase;
+      formState.collect = data.detail?.keepingunit;
+      formState.respUnit = data.detail?.rboffice;
+      formState.updateType = data.detail?.updateType;
+      formState.epsgcode = data.detail?.epsgCode;
+      formState.shsqlc = data.detail?.shsqlc;
+      formState.share = data.detail.servicetypepublic === '0' ? false : true;
+      formState.externalApply = data.detail.externalApply === '0' ? false : true;
+      formState.immExaim = data.detail.ishistory === '0' ? false : true;
     };
-    
+
     /**
      * 上传缩略图改变
-    */
-    const uploadFilesChange = (file,fileList,evelt) => {
-      console.log('上传缩略图改变',file,fileList)
-    }
+     */
+    const uploadFilesChange = (file, fileList, evelt) => {
+      console.log('上传缩略图改变', file, fileList);
+    };
 
     onMounted(() => {
       resetForm();

+ 20 - 7
src/views/dataAdmin/dataAdmin/sceneResourceUpload/AddMethod.vue

@@ -106,6 +106,7 @@ export default defineComponent({
     const roleOptions = ref<TOption[]>([]);
     const isUpdate = ref(true);
     const rowId = ref('');
+    const serviceid = ref('');
     const postData = reactive({});
     const activeKey = ref('1');
     const getRoleList = async () => {
@@ -137,6 +138,7 @@ export default defineComponent({
       isUpdate.value = !!data?.isUpdate;
       if (unref(isUpdate)) {
         rowId.value = data.record.id;
+        serviceid.value = data.record.serviceid;
         setFieldsValue(data.record);
       }
     });
@@ -178,14 +180,25 @@ export default defineComponent({
           },
           values
         );
-        let postFormData = {
-          type: 'ER',
-          servicebase: servicebase,
-          metadata: metadata,
-        };
-        const res = await insertService(postFormData);
+        let res = null;
+        if (!unref(isUpdate)) {
+          let postFormData = {
+            type: 'ER',
+            servicebase: servicebase,
+            metadata: metadata,
+          };
+          res = await insertService(postFormData);
+        } else {
+          Object.assign(servicebase,{serviceid:serviceid.value})
+          Object.assign(metadata,{serviceid:serviceid.value,id:rowId.value})
+          let postFormData = {
+            type: 'ER',
+            servicebase: servicebase,
+            metadata: metadata,
+          };
+          res = await updateService(postFormData);
+        }
         if (res) {
-          console.log('上传成功!',res);
           closeModal();
           emit('success');
           createMessage.success(unref(isUpdate) ? '编辑成功' : '新增成功');

+ 2 - 2
src/views/dataAdmin/dataAdmin/sceneResourceUpload/index.vue

@@ -92,9 +92,9 @@
         </Tag>
       </template>
       <template #nodename="{ record }">
-        <Tag :style="`color:${record.nodename === '' ? 'red' : '#05B069'};`">
+        <Tag>
           {{
-            record.nodename === '' ? '未提交' : record.nodename
+            record.nodename === '' ? (record.status === 1 ? '审核完成' : '未提交') : record.nodename
           }}
         </Tag>
       </template>

+ 3 - 16
src/views/dataAdmin/dataAdmin/sceneResourceUpload/sceneUploadData.js

@@ -6,6 +6,7 @@ import {
   respDept,
   collectDept,
   EPSGCodes,
+  ApplProcesses,
 } from '../sysDic';
 
 export const columns = [
@@ -247,7 +248,7 @@ export const accountFormSchema = [
     },
   },
   {
-    field: 'datatype',
+    field: 'dataType',
     label: '数据类型',
     required: false,
     component: 'Select',
@@ -377,15 +378,6 @@ export const accountFormSchema = [
       placeholder: '请输入',
     },
   },
-  {
-    field: 'updateType',
-    label: '更新方式',
-    component: 'Input',
-    colProps: { span: 12 },
-    componentProps: {
-      placeholder: '请输入更新方式',
-    },
-  },
   {
     field: 'publishdata',
     label: '更新日期',
@@ -445,12 +437,7 @@ export const accountFormSchema = [
         value: 'value',
       },
       maxTagCount: 10,
-      options: [
-        { value: "ggdata", label: "国家秘密和工作秘密数据成果申请" },
-        { value: "other", label: "其他数据成果申请" },
-        { value: "mr", label: "地图资源申请" },
-        { value: "interface", label: "接口服务申请" },
-      ]
+      options: ApplProcesses
     },
   },
 

+ 8 - 1
src/views/dataAdmin/dataAdmin/sysDic.ts

@@ -2,7 +2,7 @@
  * @Author: tengmingxue 1473375109@qq.com
  * @Date: 2023-08-28 13:46:21
  * @LastEditors: tengmingxue 1473375109@qq.com
- * @LastEditTime: 2023-09-22 22:49:55
+ * @LastEditTime: 2023-09-24 11:11:38
  * @FilePath: \xld-gis-admin\src\views\dataAdmin\dataAdmin\sysDic.ts
  * @Description: 系统字典
  */
@@ -91,4 +91,11 @@ export const checkStatus = [
   { label: '审核不通过', value: 3 },
   { label: '被驳回', value: 4 },
   { label: '审核通过', value: 5 },
+]
+
+export const ApplProcesses= [
+  { value: "ggdata", label: "国家秘密和工作秘密数据成果申请" },
+  { value: "other", label: "其他数据成果申请" },
+  { value: "mr", label: "地图资源申请" },
+  { value: "interface", label: "接口服务申请" },
 ]