|
|
@@ -0,0 +1,633 @@
|
|
|
+<!--
|
|
|
+ * @Author: tengmingxue 1473375109@qq.com
|
|
|
+ * @Date: 2023-08-15 22:08:21
|
|
|
+ * @LastEditors: tengmingxue 1473375109@qq.com
|
|
|
+ * @LastEditTime: 2023-08-28 14:26:58
|
|
|
+ * @FilePath: \xld-gis-admin\src\views\resource\map\SourceDetail.vue
|
|
|
+ * @Description: 地图资源明细界面
|
|
|
+-->
|
|
|
+<template>
|
|
|
+ <div class="source-detail">
|
|
|
+ <a-form ref="formRef" :model="formState" :rules="rules" style="width: 100%">
|
|
|
+ <div class="compontents">
|
|
|
+ <div class="title">基本信息</div>
|
|
|
+ <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-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="servicename"
|
|
|
+ label="资源名称"
|
|
|
+ name="servicename"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-input v-model:value="formState.servicename" :disabled="isView"/>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="servicealiasname"
|
|
|
+ label="资源别名"
|
|
|
+ name="servicealiasname"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-input v-model:value="formState.servicealiasname" :disabled="isView"/>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item ref="keywords" label="资源标签" name="keywords" class="label-form-item">
|
|
|
+ <a-select v-model:value="formState.keywords" mode="multiple" :disabled="isView">
|
|
|
+ <template v-for="tag in serviceTags" :key="tag.code">
|
|
|
+ <a-select-option :value="tag.value">{{ tag.label }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="24" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="description"
|
|
|
+ label="资源描述"
|
|
|
+ name="description"
|
|
|
+ class="label-form-item"
|
|
|
+ :disabled="isView"
|
|
|
+ >
|
|
|
+ <a-textarea v-model:value="formState.description" :rows="2" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <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" :disabled="isView">
|
|
|
+ <a-button style="background-color: #0671dd; color: #fff; border-radius: 4px">
|
|
|
+ <upload-outlined></upload-outlined>
|
|
|
+ 文件上传
|
|
|
+ </a-button>
|
|
|
+ </a-upload>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="compontents">
|
|
|
+ <div class="title">描述信息</div>
|
|
|
+ <a-row class="form-container">
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="servicetype"
|
|
|
+ label="资源类型"
|
|
|
+ name="servicetype"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-select v-model:value="formState.servicetype" :disabled="isView">
|
|
|
+ <template v-for="tag in serviceTypes" :key="tag.value">
|
|
|
+ <a-select-option :value="tag.value">{{ tag.label }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item ref="coordinate" label="坐标系" name="coordinate" class="label-form-item">
|
|
|
+ <a-select v-model:value="formState.coordinate" :disabled="isView">
|
|
|
+ <template v-for="tag in sysCoors" :key="tag.GEOMNAME">
|
|
|
+ <a-select-option :value="tag.GEOMNAME">{{ tag.GEOMTITLE }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </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-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-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-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item ref="restype" label="密级" name="secrets" class="label-form-item">
|
|
|
+ <a-select v-model:value="formState.secrets" :disabled="isView">
|
|
|
+ <template v-for="tag in secrets" :key="tag.code">
|
|
|
+ <a-select-option :value="tag.code">{{ tag.name }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="sourcetable"
|
|
|
+ label="数据表"
|
|
|
+ name="sourcetable"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-input v-model:value="formState.formdatabase" :disabled="isView"/>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item ref="collect" label="保管单位" name="collect" class="label-form-item">
|
|
|
+ <a-select v-model:value="formState.collect" :disabled="isView">
|
|
|
+ <template v-for="tag in collectDept" :key="tag.code">
|
|
|
+ <a-select-option :value="tag.code">{{ tag.name }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item ref="respUnit" label="责任处室" name="respUnit" class="label-form-item">
|
|
|
+ <a-select v-model:value="formState.respUnit" :disabled="isView">
|
|
|
+ <template v-for="tag in respDept" :key="tag.code">
|
|
|
+ <a-select-option :value="tag.code">{{ tag.name }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </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.publishtime" disabled /> -->
|
|
|
+ <a-date-picker
|
|
|
+ v-model:value="formState.publishtime"
|
|
|
+ format="YYYY-MM-DD hh:mm:ss"
|
|
|
+ style="width: 100%"
|
|
|
+ disabled
|
|
|
+ show-time
|
|
|
+ :disabled="isView"
|
|
|
+ >
|
|
|
+ <template #renderExtraFooter>extra footer</template>
|
|
|
+ </a-date-picker>
|
|
|
+ </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.publisher" disabled :disabled="isView"/>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="updatetype"
|
|
|
+ label="更新方式"
|
|
|
+ name="updatetype"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-input v-model:value="formState.updateType" :disabled="isView"/>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="updatetime"
|
|
|
+ label="更新时间"
|
|
|
+ name="updatetime"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-date-picker
|
|
|
+ v-model:value="formState.updatetime"
|
|
|
+ format="YYYY-MM-DD hh:mm:ss"
|
|
|
+ style="width: 100%"
|
|
|
+ disabled
|
|
|
+ show-time
|
|
|
+ >
|
|
|
+ <template #renderExtraFooter>extra footer</template>
|
|
|
+ </a-date-picker>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item ref="epsgcode" label="EPSGCode" name="epsgcode" class="label-form-item">
|
|
|
+ <a-select v-model:value="formState.epsgcode" :disabled="isView">
|
|
|
+ <template v-for="tag in EPSGCodes" :key="tag.code">
|
|
|
+ <a-select-option :value="tag.code">{{ tag.name }}</a-select-option>
|
|
|
+ </template>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="12" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="runtimestatus"
|
|
|
+ label="运行状态"
|
|
|
+ name="runtimestatus"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-switch
|
|
|
+ checked-children=""
|
|
|
+ un-checked-children=""
|
|
|
+ v-model:checked="formState.runtimestatus"
|
|
|
+ :disabled="isView"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="6" class="form-col">
|
|
|
+ <a-form-item ref="public" label="是否公开" name="public" class="label-form-item">
|
|
|
+ <a-switch
|
|
|
+ checked-children=""
|
|
|
+ un-checked-children=""
|
|
|
+ v-model:checked="formState.public"
|
|
|
+ :disabled="isView"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="6" class="form-col">
|
|
|
+ <a-form-item ref="share" label="是否共享" name="share" class="label-form-item">
|
|
|
+ <a-switch
|
|
|
+ checked-children=""
|
|
|
+ un-checked-children=""
|
|
|
+ v-model:checked="formState.share"
|
|
|
+ :disabled="isView"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="6" class="form-col">
|
|
|
+ <a-form-item
|
|
|
+ ref="externalApply"
|
|
|
+ label="是否外部申请"
|
|
|
+ name="externalApply"
|
|
|
+ class="label-form-item"
|
|
|
+ >
|
|
|
+ <a-switch
|
|
|
+ checked-children=""
|
|
|
+ un-checked-children=""
|
|
|
+ v-model:checked="formState.externalApply"
|
|
|
+ :disabled="isView"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="6" class="form-col">
|
|
|
+ <a-form-item ref="searched" label="是否展示" name="searched" class="label-form-item">
|
|
|
+ <a-switch
|
|
|
+ checked-children=""
|
|
|
+ un-checked-children=""
|
|
|
+ v-model:checked="formState.searched"
|
|
|
+ :disabled="isView"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </div>
|
|
|
+ </a-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script lang="ts">
|
|
|
+import {
|
|
|
+ defineComponent,
|
|
|
+ ref,
|
|
|
+ toRefs,
|
|
|
+ toRaw,
|
|
|
+ unref,
|
|
|
+ computed,
|
|
|
+ unref,
|
|
|
+ nextTick,
|
|
|
+ reactive,
|
|
|
+ UnwrapRef,
|
|
|
+ onMounted,
|
|
|
+ watch,
|
|
|
+} from 'vue';
|
|
|
+import { BasicForm, useForm } from '/@/components/Form/index';
|
|
|
+import { UploadOutlined } from '@ant-design/icons-vue';
|
|
|
+import { ValidateErrorEntity } from 'ant-design-vue/es/form/interface';
|
|
|
+import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
+const { t } = useI18n(); //加载国际化
|
|
|
+// 加载菜单数据
|
|
|
+import { useI18n } from '/@/hooks/web/useI18n';
|
|
|
+import Moment from 'moment';
|
|
|
+import { insertService, updateService } from '/@/api/resource/map';
|
|
|
+import {
|
|
|
+ serviceTypes,
|
|
|
+ serviceTags,
|
|
|
+ secrets,
|
|
|
+ sysCoors,
|
|
|
+ respDept,
|
|
|
+ collectDept,
|
|
|
+ EPSGCodes,
|
|
|
+} from '../../dataAdmin/dataAdmin/sysDic';
|
|
|
+import { session } from '/@/utils/Memory.js';
|
|
|
+const props = {
|
|
|
+ formData: { type: Object, default: ref(null) },
|
|
|
+ isUpdate: { type: Boolean, default: ref(false) },
|
|
|
+ isView: { type: Boolean, default: ref(false) },
|
|
|
+};
|
|
|
+interface FormState {
|
|
|
+ code: string;
|
|
|
+ servicename: string;
|
|
|
+ servicealiasname: string;
|
|
|
+ keywords: string[];
|
|
|
+ description: string;
|
|
|
+ servicetype: string;
|
|
|
+ coordinate: string;
|
|
|
+ mapingurl: string;
|
|
|
+ dataScope: string;
|
|
|
+ source: string;
|
|
|
+ secrets: string;
|
|
|
+ formdatabase: string;
|
|
|
+ collect: string;
|
|
|
+ respUnit: string;
|
|
|
+ publishtime: string;
|
|
|
+ publisher: string;
|
|
|
+ updateType: string;
|
|
|
+ updatetime: string;
|
|
|
+ epsgcode: string;
|
|
|
+ runtimestatus: boolean;
|
|
|
+ public: boolean;
|
|
|
+ share: boolean;
|
|
|
+ searched: boolean;
|
|
|
+ externalApply: boolean;
|
|
|
+ date1: undefined;
|
|
|
+}
|
|
|
+export default defineComponent({
|
|
|
+ name: 'SourceDetail',
|
|
|
+ components: { BasicForm, UploadOutlined },
|
|
|
+ props,
|
|
|
+ setup(props, { emit }) {
|
|
|
+ const data = reactive({
|
|
|
+ detail: props.formData,
|
|
|
+ isUpdate: props.isUpdate,
|
|
|
+ isView: props.isView,
|
|
|
+ fileList: [],
|
|
|
+ serviceTags: serviceTags,
|
|
|
+ secrets: secrets, //密级
|
|
|
+ sysCoors: sysCoors, //坐标系
|
|
|
+ serviceTypes: serviceTypes, //资源类型
|
|
|
+ respDept: respDept, //责任科室
|
|
|
+ collectDept: collectDept, //保管部门
|
|
|
+ EPSGCodes: EPSGCodes, //EPSGCode
|
|
|
+ });
|
|
|
+ const formRef = ref();
|
|
|
+ const formState: UnwrapRef<FormState> = reactive({
|
|
|
+ code: '',
|
|
|
+ servicename: '',
|
|
|
+ servicealiasname: '',
|
|
|
+ keywords: [],
|
|
|
+ description: '',
|
|
|
+ servicetype: '',
|
|
|
+ coordinate: '',
|
|
|
+ mapingurl: '',
|
|
|
+ dataScope: '',
|
|
|
+ source: '',
|
|
|
+ secrets: '',
|
|
|
+ formdatabase: '',
|
|
|
+ collect: '',
|
|
|
+ respUnit: '',
|
|
|
+ publishtime: '',
|
|
|
+ publisher: '',
|
|
|
+ updateType: '',
|
|
|
+ updatetime: '',
|
|
|
+ epsgcode: '',
|
|
|
+ runtimestatus: true,
|
|
|
+ public: true,
|
|
|
+ share: true,
|
|
|
+ searched: true,
|
|
|
+ externalApply: true,
|
|
|
+ date1: undefined,
|
|
|
+ });
|
|
|
+ const moment = Moment;
|
|
|
+ const rules = {
|
|
|
+ servicename: [
|
|
|
+ { required: true, message: '请填写资源名称', trigger: 'blur' },
|
|
|
+ { min: 3, max: 20, message: '长度必须在3到20个字符', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ servicealiasname: [
|
|
|
+ { required: true, message: '请输入资源别名', trigger: 'blur' },
|
|
|
+ { min: 3, max: 20, message: '长度必须在3到20个字符', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ systag: [{ required: true, message: '请选择系统标签', trigger: 'change' }],
|
|
|
+ servicetype: [{ required: true, message: '请选择资源类型', trigger: 'change' }],
|
|
|
+ coordinate: [{ required: true, message: '请选择坐标系', trigger: 'change' }],
|
|
|
+ mapingurl: [{ required: true, message: '请输入服务地址', trigger: 'blur' }],
|
|
|
+
|
|
|
+ date1: [{ required: true, message: 'Please pick a date', trigger: 'change', type: 'object' }],
|
|
|
+ type: [
|
|
|
+ {
|
|
|
+ type: 'array',
|
|
|
+ required: true,
|
|
|
+ message: 'Please select at least one activity type',
|
|
|
+ trigger: 'change',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ resource: [{ required: true, message: 'Please select activity resource', trigger: 'change' }],
|
|
|
+ desc: [{ required: true, message: 'Please input activity form', trigger: 'blur' }],
|
|
|
+ };
|
|
|
+ const { createMessage } = useMessage();
|
|
|
+ watch(
|
|
|
+ () => props.formData,
|
|
|
+ (obj) => {
|
|
|
+ data.detail = obj;
|
|
|
+ if (data.isUpdate) setFormData();
|
|
|
+ }
|
|
|
+ );
|
|
|
+ watch(
|
|
|
+ () => props.isUpdate,
|
|
|
+ (obj) => {
|
|
|
+ data.isUpdate = obj;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ watch(
|
|
|
+ () => props.isView,
|
|
|
+ (obj) => {
|
|
|
+ data.isView = obj;
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ const submitForm = () => {
|
|
|
+ try {
|
|
|
+ formRef.value
|
|
|
+ .validate()
|
|
|
+ .then(async () => {
|
|
|
+ //console.log('values', formState, toRaw(formState));
|
|
|
+ const params = setSubmitForm();
|
|
|
+ if (params) {
|
|
|
+ if (data.isUpdate) {
|
|
|
+ params['serviceid'] = data.detail.serviceid;
|
|
|
+ const res = await updateService(params);
|
|
|
+ if (res && res?.status !== '-1') {
|
|
|
+ createMessage.success('修改地图资源成功!');
|
|
|
+ resetForm();
|
|
|
+ emit('RtnMain', true);
|
|
|
+ } else createMessage.error('修改地图资源失败!,失败原因:' + res?.message, 1);
|
|
|
+ } else {
|
|
|
+ const res = await insertService(params);
|
|
|
+ if (res && res?.status !== '-1') {
|
|
|
+ createMessage.success('新增地图资源成功!');
|
|
|
+ resetForm();
|
|
|
+ emit('RtnMain', true);
|
|
|
+ } else createMessage.error('新增地图资源失败!,失败原因:' + res?.message, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((error: ValidateErrorEntity<FormState>) => {
|
|
|
+ createMessage.error('请完成必填信息!', 1);
|
|
|
+ console.log('error', error);
|
|
|
+ });
|
|
|
+ } catch (ex) {
|
|
|
+ console.log(ex);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const resetForm = () => {
|
|
|
+ formRef.value.resetFields();
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置提交数据
|
|
|
+ */
|
|
|
+ const setSubmitForm = () => {
|
|
|
+ const userinfo = session.getItem('userInfo');
|
|
|
+ const collect = collectDept.find((item) => item.code === formState.collect);
|
|
|
+ const rboffices = respDept.find((item) => item.code === formState.respUnit);
|
|
|
+ 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);
|
|
|
+ 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',
|
|
|
+ },
|
|
|
+ sourcetraces: [],
|
|
|
+ dataVersionConf: {},
|
|
|
+ };
|
|
|
+ };
|
|
|
+ /**
|
|
|
+ * 设置表单数据
|
|
|
+ */
|
|
|
+ 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.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.servicetype = data.detail?.servicetype;
|
|
|
+ formState.coordinate = data.detail?.crs;
|
|
|
+ formState.searched = data.detail.searched === 0 ? false : true;
|
|
|
+ };
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ resetForm();
|
|
|
+ });
|
|
|
+ return {
|
|
|
+ ...toRefs(data),
|
|
|
+ formRef,
|
|
|
+ moment,
|
|
|
+ rules,
|
|
|
+ formState,
|
|
|
+ submitForm,
|
|
|
+ resetForm,
|
|
|
+ createMessage,
|
|
|
+ setSubmitForm,
|
|
|
+ setFormData,
|
|
|
+ };
|
|
|
+ },
|
|
|
+});
|
|
|
+</script>
|
|
|
+
|
|
|
+ <style scoped lang="less">
|
|
|
+.source-detail {
|
|
|
+ height: 100%;
|
|
|
+ width: 100%;
|
|
|
+ padding: 0 20px;
|
|
|
+ .compontents {
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ .title {
|
|
|
+ height: 19px;
|
|
|
+ line-height: 18px;
|
|
|
+ padding-left: 6px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ border-left: 3px solid #0671dd;
|
|
|
+ font-family: Source Han Sans CN;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 350;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ }
|
|
|
+ .form-container {
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ .form-col {
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ .form-col-left {
|
|
|
+ padding-right: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.label-form-item {
|
|
|
+ :deep(.ant-form-item-label) {
|
|
|
+ width: 90px;
|
|
|
+ }
|
|
|
+ :deep(.ant-form-item-control) {
|
|
|
+ width: calc(100% - 90px);
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|