Procházet zdrojové kódy

🎨 修改细节问题

快乐的梦鱼 před 1 týdnem
rodič
revize
5bb1a035c1

+ 5 - 1
src/api/inheritor/InheritorContent.ts

@@ -18,6 +18,8 @@ export class CommonInfo<T extends DataModel> extends DataModel<T> {
       expandInfo: { serverSide: 'undefined' },
       region: { clientSide: 'number', serverSide: 'number' },
       progress: { clientSide: 'number', serverSide: 'number' },
+      longitude: { clientSide: 'number', serverSide: 'number' },
+      latitude: { clientSide: 'number', serverSide: 'number' },
     };
     this._beforeSolveClient = (data) => {
       if (!data.contentId && data.id)
@@ -224,7 +226,8 @@ export class InheritorInfo extends CommonInfo<InheritorInfo> {
           clientSide: 'addDefaultValue',
           clientSideParam: {
             defaultValue: [],
-          }
+          },
+          serverSide: 'original',
         },
       ],
       works: {
@@ -365,6 +368,7 @@ export class SeminarInfo extends CommonInfo<SeminarInfo> {
     this._convertTable = {
       ...this._convertTable,
       lonlat: { serverSide: 'undefined' },
+      visit: { clientSide: 'number' },
     };
     this._convertKeyType = (key, direction) => {
       if (key.endsWith('Text') || key.endsWith('_text')) {

+ 5 - 0
src/components/dynamicf/Editor/QuillEditorWrapper.vue

@@ -8,6 +8,7 @@
       v-bind="$attrs"
       :readOnly="disabled"
       :content="modelValue"
+      :placeholder="disabled ? (modelValue ? '' : '暂未填写') : placeholder"
       @update:content="(val: string) => emit('update:modelValue', val)"
     />
   </div>
@@ -65,6 +66,10 @@ const props = defineProps({
   disabled: {
     type: Boolean,
     default: false
+  },
+  placeholder: {
+    type: String,
+    default: '请输入'
   }
 })
 

+ 4 - 1
src/components/dynamicf/Map/MapPointPicker.vue

@@ -1,7 +1,7 @@
 <template>
   <div :style="{ width, height }" class="map-point-picker">
     <img src="./Maker.png" />
-    <span class="lonlat">{{ center[0] }}, {{ center[1] }}</span>
+    <span class="lonlat">经纬度:{{ Number(center[0]).toFixed(6) }}, {{ Number(center[1]).toFixed(6) }}</span>
     <el-amap
       style="width: 100%"
       v-model:center="center"
@@ -53,6 +53,9 @@ function handleInit(mapRef: any) {
   map = mapRef;
 }
 
+watch(() => props.modelValue, (newVal) => {
+  center.value = newVal;
+})
 watch(center, (newVal) => {
   emit('update:modelValue', newVal);
 })

+ 1 - 0
src/components/dynamicf/UploadVideoFormItem.vue

@@ -14,6 +14,7 @@
       <upload-outlined></upload-outlined>
       上传
     </a-button>
+    <span v-if="disabled && uploadSubImgList.length == 0">暂无</span>
   </a-upload>
 </template>
 

+ 1 - 1
src/components/dynamicf/index.ts

@@ -95,7 +95,7 @@ export function registerAllFormComponents() {
     .register('static-date', markRaw(ShowDateOrNullVue))
     .register('static-image-list', markRaw(ShowImageListVue), {}, "images")
     .register('space', markRaw(WhiteSpaceVue))
-    .register('map-pick-point', markRaw(MapPointPicker))
+    .register('map-pick-point', markRaw(MapPointPicker), {}, 'modelValue')
     .register('richtext', markRaw(QuillEditorWrapper), {}, 'modelValue')
     .register('address-sercher', markRaw(AddressSercher), {}, 'modelValue')
 

+ 1 - 1
src/pages/forms/form.vue

@@ -137,7 +137,7 @@ const props = defineProps({
     default: null
   },
   model: {
-    type: Object as PropType<new () => DataModel>,
+    type: Function as unknown as PropType<new () => DataModel>,
     required: true
   },
   load: {

+ 3 - 1
src/pages/forms/ich.vue

@@ -104,7 +104,7 @@ const formOptions = ref<IDynamicFormOptions>({
           formProps: {
             extra: h('div', {}, [
               h(ExclamationCircleOutlined),
-              h('span', { class: 'ms-2' }, '输入模糊地址后可以点击搜索跳转到指定位置,如果地图位置不正确,可以手动调整位置'),
+              h('span', { class: 'ms-2' }, '输入模糊地址后可以点击搜索跳转到指定位置,如果地图位置不正确,可以手动拖拽调整位置'),
             ]),
           },
         },
@@ -351,6 +351,8 @@ const formExtendOptions = ref<IDynamicFormOptions>({
 
 async function loadData(id: number|undefined) {
   formModel.value = await InheritorContent.getIchInfo(id);
+  console.log(formModel.value);
+  
   formModel.value.expandInfo = await InheritorContent.getIchExpandInfo(id);
   formExtendModel.value = formModel.value.expandInfo || new IchExpandInfo();
 }

+ 17 - 3
src/pages/forms/inheritor.vue

@@ -77,9 +77,23 @@ const formOptions = ref<IDynamicFormOptions>({
         //{ label: '详情', name: 'content', type: 'richtext', additionalProps: { placeholder: '请输入详情' } },
         { label: '奖项-成就', name: 'prize', type: 'richtext', additionalProps: { placeholder: '请输入奖项-成就' } },
         { label: '传承人谱系', name: 'pedigree', type: 'richtext', additionalProps: { placeholder: '请输入传承谱系' } },
-        
         { 
-          type: 'array-object', label: '传承人照片(建议分辨率:1920*1080以上,请上传传承人证件照、工作照、生活照、实践活动照)', name: 'typicalImages',
+          label: '传承人照片', name: 'images', type: 'mulit-image',
+          //hidden: { callback: (_, model) => (model as IchInfo).type !== 4 },
+          formProps: {
+            extra: '建议分辨率:1920*1080以上,请上传传承人证件照、工作照、生活照、实践活动照',
+          },
+          additionalProps: {
+            placeholder: '请上传图片',
+            maxCount: 20,
+            name: 'file',
+            beforeUpload: useBeforeUploadImageChecker(),
+            uploadCo: useAliOssUploadCo('inheritor/images'),
+          } as UploadImageFormItemProps,
+        },
+        /* { 
+          type: 'array-object', label: '传承人照片(建议分辨率:1920*1080以上,请上传传承人证件照、工作照、生活照、实践活动照)', 
+          name: 'typicalImages',
           formProps: {
             center: false,
           },
@@ -105,7 +119,7 @@ const formOptions = ref<IDynamicFormOptions>({
               } as UploadImageFormItemProps,
             },
           ]
-        },
+        }, */
         { 
           label: '传承人相关视频', name: 'video', type: 'single-video',
           //hidden: { callback: (_, model) => (model as InheritorInfo).type !== 3 },