| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550 |
- import VillageInfoApi, { CommonInfoModel, VillageBulidingInfo, VillageEnvInfo } from "@/api/inhert/VillageInfoApi";
- import { useAliOssUploadCo } from "@/common/components/upload/AliOssUploadCo";
- import type { FormDefine, FormDefineItem, IFormItemCallbackAdditionalProps } from "@/components/dynamic";
- import type { FormGroupProps } from "@/components/dynamic/DynamicFormCate.vue";
- import type { CheckBoxListProps } from "@/components/dynamic/wrappers/CheckBoxList.vue";
- import type { CheckBoxToIntProps } from "@/components/dynamic/wrappers/CheckBoxToInt";
- import type { PickerIdFieldProps } from "@/components/dynamic/wrappers/PickerIdField";
- import type { FieldProps } from "@/components/form/Field.vue";
- import type { PickerFieldProps } from "@/components/form/PickerField.vue";
- import type { StepperProps } from "@/components/form/Stepper.vue";
- import type { UploaderFieldProps } from "@/components/form/UploaderField.vue";
- import type { NewDataModel } from "@imengyu/js-request-transform";
- type SingleForm = [NewDataModel, FormDefine]
- const villageInfoBuildingForm : SingleForm = [VillageBulidingInfo, {
- items: [
- {
- label: '建筑名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入建筑名称',
- },
- rules: [{
- required: true,
- message: '请输入建筑名称',
- }]
- },
- {
- label: '建筑编码',
- name: 'code',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入建筑编码',
- },
- rules: [{
- required: true,
- message: '请输入建筑编码',
- }]
- },
- {
- label: '产权归属',
- name: 'ownership',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(152))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择产权归属',
- }],
- },
- {
- label: '位置',
- name: 'position',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入位置',
- },
- rules: [{
- required: true,
- message: '请输入位置',
- }]
- },
- {
- label: '建筑类型',
- name: 'buildingType',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(163))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择建筑类型',
- }],
- },
- {
- label: '建筑中的故事',
- name: 'story',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入建筑中的故事',
- },
- rules: [{
- required: true,
- message: '请输入建筑中的故事',
- }]
- },
- {
- label: '保护级别',
- name: 'protectionLevel',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(171))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择建筑类型',
- }],
- },
- {
- label: '总占地面积',
- name: 'area',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入总占地面积',
- },
- rules: [{
- required: true,
- message: '请输入总占地面积',
- }]
- },
- {
- label: '建筑面积',
- name: 'buildingArea',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入建筑面积',
- },
- rules: [{
- required: true,
- message: '请输入建筑面积',
- }]
- },
- {
- label: '建筑层数',
- name: 'floor',
- type: 'number',
- defaultValue: 0,
- params: {
- min: 0,
- max: 1000,
- },
- rules: [{
- required: true,
- message: '请输入建筑层数',
- }]
- },
- {
- label: '所含建筑幢数',
- name: 'num',
- type: 'number',
- defaultValue: 0,
- params: {
- min: 0,
- max: 1000,
- },
- rules: [{
- required: true,
- message: '请输入所含建筑幢数',
- }]
- },
- {
- label: '始建时间(年)',
- name: 'age',
- type: 'number',
- defaultValue: 2025,
- params: {
- min: -50000,
- max: 2000,
- },
- rules: [{
- required: true,
- message: '请输入始建时间',
- }]
- },
- {
- label: '功能特点',
- name: 'funcFeatures',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入功能特点',
- },
- rules: [{
- required: true,
- message: '请输入功能特点',
- }]
- },
- {
- label: '承重结构(多选)',
- name: 'bearingType',
- type: 'check-box-list',
- params: {
- multiple: true,
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(246))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as CheckBoxListProps,
- defaultValue: [],
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- {
- label: '其他建筑类型',
- name: 'otherBuildingType',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '其他建筑类型' },
- rules: []
- },
- {
- label: '居民建筑类型',
- name: 'residentialBuildingType',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '居民建筑类型' },
- rules: []
- },
- {
- label: '其他保护级别',
- name: 'otherProtectionLevel',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '其他保护级别' },
- rules: []
- },
- {
- label: '修缮过程',
- name: 'repairProcess',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '修缮过程' },
- rules: []
- },
- {
- label: '建筑风貌',
- name: 'architecturalStyle',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '建筑风貌' },
- rules: []
- },
- {
- label: '院落布局',
- name: 'layout',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '院落布局' },
- rules: []
- },
- {
- label: '其他承重结构类型',
- name: 'otherBearing',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '其他承重结构类型' },
- rules: []
- },
- {
- label: '屋面形式(多选)',
- name: 'roofForm',
- type: 'check-box-list',
- params: {
- multiple: true,
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(264))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as CheckBoxListProps,
- defaultValue: [],
- rules: [],
- },
- {
- label: '屋面形式说明',
- name: 'roofDescribe',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '屋面形式说明' },
- rules: []
- },
- {
- label: '围护墙体(多选)',
- name: 'wallType',
- type: 'check-box-list',
- params: {
- multiple: true,
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(271))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as CheckBoxListProps,
- defaultValue: [],
- rules: [],
- },
- {
- label: '围护墙体说明',
- name: 'otherBuildingType',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '围护墙体说明' },
- rules: []
- },
- {
- label: '地面做法(多选)',
- name: 'floorType',
- type: 'check-box-list',
- params: {
- multiple: true,
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(258))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as CheckBoxListProps,
- defaultValue: [],
- rules: [],
- },
- {
- label: '地面做法说明',
- name: 'floorDescribe',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '地面做法说明' },
- rules: []
- },
- {
- label: '特殊工艺做法',
- name: 'specialProcess',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '特殊工艺做法' },
- rules: []
- },
- {
- label: '历史功能',
- name: 'funcHistory',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '历史功能' },
- rules: []
- },
- {
- label: '现状用途(多选)',
- name: 'purpose',
- type: 'check-box-list',
- params: {
- multiple: true,
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(252))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as CheckBoxListProps,
- defaultValue: [],
- rules: [],
- },
- {
- label: '其他现状用途',
- name: 'otherPurpose',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '其他现状用途' },
- rules: []
- },
- {
- label: '改扩建情况及维修状况',
- name: 'repair',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '改扩建情况及维修状况' },
- rules: []
- },
- {
- label: '改扩建情况及维修状况说明',
- name: 'repairDescribe',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '改扩建情况及维修状况说明' },
- rules: []
- },
- ]
- }]
- const villageInfoFolkCultureForm : SingleForm = [VillageBulidingInfo, {
- items: [
- {
- label: '名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入名称',
- },
- rules: [{
- required: true,
- message: '请输入名称',
- }]
- },
- {
- label: '详情',
- name: 'details',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入详情',
- },
- rules: [{
- required: true,
- message: '请输入详情',
- }]
- },
- {
- label: '村落非遗项目',
- name: 'ichId',
- type: 'select-id',
- defaultValue: null,
- params: {
- loadData: {
- callback: (m, r, p, i) => async () =>
- (await VillageInfoApi.getList(
- 'ich', undefined, undefined,
- i.formGlobalParams.villageId,
- i.formGlobalParams.villageVolunteerId
- )).map((p) => ({
- value: p.id,
- text: p.title,
- }))
- },
- } as IFormItemCallbackAdditionalProps<PickerIdFieldProps>,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [],
- },
- {
- label: '文化资源关联内容ID',
- name: 'details',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '输入文化资源关联内容ID',
- },
- rules: []
- },
- ]
- }];
- const villageInfoFoodProductsForm : SingleForm = [VillageBulidingInfo, {
- items: [
- {
- label: '名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入名称',
- },
- rules: [{
- required: true,
- message: '请输入名称',
- }]
- },
- {
- label: '详情',
- name: 'details',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入详情',
- },
- rules: [{
- required: true,
- message: '请输入详情',
- }]
- },
- ]
- }];
- const villageCommonContent : FormDefine = {
- items: [
- {
- label: '标题',
- name: 'title',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入标题',
- },
- rules: [{
- required: true,
- message: '请输入标题',
- }]
- },
- {
- label: '内容',
- name: 'content',
- type: 'richtext',
- defaultValue: '',
- params: {
- placeholder: '请输入内容',
- maxLength: 1000,
- },
- rules: [{
- required: true,
- message: '请输入内容',
- }]
- },
- {
- label: '图片',
- name: 'images',
- type: 'richtext',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/common'),
- maxFileSize: 1024 * 1024 * 20,
- maxUploadCount: 20,
- } as UploaderFieldProps,
- rules: [{
- required: true,
- message: '请输入内容',
- }]
- },
- ]
- };
-
- //TODO: 关联的文化资源ID
- const villageInfoForm : Record<string, Record<number, SingleForm>> = {
- 'overview': {
- [1]: [CommonInfoModel, {
- items: [
- {
- label: '村落名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入村落名称',
- },
- rules: [{
- required: true,
- message: '请输入村落名称',
- }]
- },
- {
- label: '村落编码',
- name: 'code',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入村落编码',
- },
- rules: [{
- required: true,
- message: '请输入村落编码',
- }]
- },
- {
- label: '村落地址',
- name: 'cityAddress',
- type: 'select-city',
- defaultValue: () => [],
- params: {
- placeholder: '请选择村落地址',
- },
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择村落地址',
- }]
- },
- {
- label: '村落乡镇',
- name: 'township',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入村落所在乡镇',
- },
- rules: [{
- required: true,
- message: '请输入村落所在乡镇',
- }]
- },
- {
- label: '村落类型',
- name: 'villageType',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(94))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- ]
- }],
- [2]: [VillageEnvInfo, {
- items: [
- {
- label: '经纬度',
- name: 'lonlat',
- type: 'select-lonlat',
- defaultValue: '',
- params: {},
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请输入村落经纬度',
- }]
- },
- {
- label: '海拔',
- name: 'altitude',
- type: 'number',
- defaultValue: 0,
- params: {
- placeholder: '请输入村落海拔',
- min: -1000,
- max: 10000,
- step: 10,
- },
- rules: [{
- required: true,
- message: '请输入村落海拔',
- }]
- },
- {
- label: '地形地貌特征(多选)',
- name: 'landforms',
- type: 'check-box-list',
- params: {
- multiple: true,
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(97))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as CheckBoxListProps,
- defaultValue: [],
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- {
- label: '村域面积(平方公里)',
- name: 'area',
- type: 'number',
- defaultValue: 0,
- params: {
- placeholder: '请输入村域面积',
- min: 0,
- max: 10000,
- step: 1,
- },
- rules: [{
- required: true,
- message: '请输入村域面积',
- }]
- },
- {
- label: '村庄占地面积(亩)',
- name: 'villageArea',
- type: 'number',
- defaultValue: 0,
- params: {
- placeholder: '请输入村庄占地面积',
- min: 0,
- max: 10000,
- step: 1,
- },
- rules: [{
- required: true,
- message: '请输入村庄占地面积',
- }]
- },
- {
- label: '村落形成年代',
- name: 'age',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(103))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- ]
- }],
- [3]: [CommonInfoModel, {
- items: [
- {
- label: '非遗最高级别',
- name: 'ichLevel',
- type: 'select-id',
- defaultValue: null,
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(111))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择非遗最高级别',
- }],
- },
- {
- label: '传统建筑数量',
- name: 'traditionalBuildings',
- type: 'number',
- defaultValue: 0,
- params: {
- min: 0,
- max: 10000,
- step: 1,
- },
- rules: [{
- required: true,
- message: '请输入传统建筑数量',
- }]
- },
- {
- label: '列入历史文化名村级别',
- name: 'historyLevel',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(151))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- {
- label: '列入特色景观旅游名村级别',
- name: 'touristLevel',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(151))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- {
- label: '列入少数民族特色村寨试点示范',
- name: 'isFeaturedVillage',
- type: 'check-box-int',
- defaultValue: '',
- params: {},
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- {
- label: '其他认定级别',
- name: 'other',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '(可选)输入村落其他认定级别',
- },
- rules: []
- },
- ]
- }],
- [4]: [CommonInfoModel, {
- items: [
- {
- name: '',
- label: '人口与收入',
- children: {
- type: 'group',
- props: { type: 'block' } as FormGroupProps,
- propNestType: 'nest',
- items: [
- {
- label: '主要民族',
- name: 'nationlity',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入主要民族',
- },
- rules: [{
- required: true,
- message: '请输入主要民族',
- }]
- },
- ...[
- {
- label: '户籍人口',
- name: 'registeredPopulation',
- },
- {
- label: '常住人口',
- name: 'permanentPopulation',
- },
- {
- label: '人均年收入',
- name: 'personalAnnualIncome',
- },
- {
- label: '集体年收入',
- name: 'villageAnnualIncome',
- },
- ].map((it) => ({
- name: '',
- label: it.label,
- children: {
- type: 'group',
- props: { type: 'row' } as FormGroupProps,
- propNestType: 'flat',
- items: [
- {
- label: '',
- name: it.name + 'Year',
- type: 'number',
- defaultValue: () => new Date().getFullYear(),
- params: {
- min: 1900,
- max: 2100,
- step: 10,
- },
- itemParams: {
- labelWidth: '0rpx',
- labelPosition2: 'left',
- bottomMargin: false,
- },
- rules: [{
- required: true,
- message: '请输入',
- }]
- },
- {
- label: '',
- name: 'aa',
- type: 'static-text',
- params: { text: '年' },
- itemParams: {
- labelWidth: '0rpx',
- bottomMargin: false,
- },
- },
- {
- label: '',
- name: it.name,
- type: 'number',
- defaultValue: 0,
- params: {
- min: 0,
- step: 10,
- },
- itemParams: {
- labelWidth: '0rpx',
- labelPosition2: 'left',
- bottomMargin: false,
- },
- rules: [{
- required: true,
- message: '请输入人口',
- }]
- },
- ]
- }
- } as FormDefineItem)),
- ]
- }
- },
- {
- name: '',
- label: '主要产业',
- children: {
- type: 'group',
- props: { type: 'block' } as FormGroupProps,
- propNestType: 'flat',
- items: [
- ...[
- {
- label: '农业',
- name: 'agriculture',
- pid: 128,
- },
- {
- label: '林业',
- name: 'forestry',
- pid: 194,
- },
- {
- label: '畜牧业',
- name: 'animal',
- pid: 200,
- },
- {
- label: '渔业',
- name: 'fishing',
- pid: 205,
- },
- {
- label: '制造业(含手工)',
- name: 'manufacturing',
- pid: 208,
- },
- {
- label: '建筑业',
- name: 'construction',
- pid: 227,
- },
- {
- label: '批发和零售业',
- name: 'retail',
- pid: 230,
- },
- {
- label: '服务业',
- name: 'service',
- pid: 233,
- },
- {
- label: '其他',
- name: 'otherIndustries',
- pid: 238,
- },
- ].map((it) => ({
- label: it.label,
- name: it.name,
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(it.pid))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [],
- })),
- {
- label: '其他服务业',
- name: 'otherService',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '(可选)输入其他服务业',
- },
- rules: []
- },
- {
- label: '其他农业',
- name: 'otherAgriculture',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '(可选)输入其他农业',
- },
- rules: []
- },
- ]
- }
- },
- ]
- }],
- [5]: [CommonInfoModel, {
- items: [
- {
- name: '',
- children: {
- type: 'group',
- props: {
- class: 'form-block',
- },
- propNestType: 'nest',
- items: [
- {
- label: '概括',
- name: 'overview',
- type: 'richtext',
- defaultValue: '',
- params: {
- placeholder: '请输入概括',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入概括',
- }]
- }
- ]
- }
- },
- {
- name: '',
- children: {
- type: 'group',
- props: {
- class: 'form-block',
- },
- propNestType: 'nest',
- items: [
- {
- label: '突出价值',
- name: 'prominent',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入突出价值',
- maxLength: 1000,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入突出价值',
- }]
- },
- ]
- }
- },
- ]
- }],
- },
- 'cultural': {
- [1]: [CommonInfoModel, villageCommonContent],
- [2]: [CommonInfoModel, villageCommonContent],
- [3]: [CommonInfoModel, {
- items: [
- ...(villageCommonContent.items.slice(0, 2)),
- {
- label: '扫描件或图片',
- name: 'images',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/cultural/scan'),
- maxFileSize: 1024 * 1024 * 20,
- maxUploadCount: 20,
- } as UploaderFieldProps,
- rules: [{
- required: true,
- message: '请上传扫描件或图片',
- }]
- },
- ],
- }],
- [4]: [CommonInfoModel, {
- items: [
- ...villageCommonContent.items,
- {
- label: '视频',
- name: 'video',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/cultural/video'),
- chooseType: 'video',
- maxFileSize: 1024 * 1024 * 20,
- single: true,
- } as UploaderFieldProps,
- },
- ],
- }],
- },
- 'story': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '标题',
- name: 'title',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入标题',
- },
- rules: [{
- required: true,
- message: '请输入标题',
- }]
- },
- {
- label: '简介',
- name: 'intro',
- type: 'richtext',
- defaultValue: '',
- params: {
- placeholder: '请输入内容',
- },
- rules: [{
- required: true,
- message: '请输入内容',
- }]
- },
- {
- label: '内容',
- name: 'content',
- type: 'richtext',
- defaultValue: '',
- params: {
- placeholder: '请输入内容',
- },
- rules: [{
- required: true,
- message: '请输入内容',
- }]
- }
- ]
- }],
- },
- 'figure': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '标题',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入标题',
- },
- rules: [{
- required: true,
- message: '请输入标题',
- }]
- },
- {
- label: '简介',
- name: 'brief',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入简介',
- maxLength: 500,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入简介',
- }]
- },
- {
- label: '内容',
- name: 'intro',
- type: 'richtext',
- defaultValue: '',
- params: {
- placeholder: '请输入内容',
- },
- rules: [{
- required: true,
- message: '请输入内容',
- }]
- }
- ]
- }],
- },
- 'element': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入名称',
- },
- rules: [{
- required: true,
- message: '请输入名称',
- }]
- },
- {
- label: '位置',
- name: 'position',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入位置',
- },
- rules: [{
- required: true,
- message: '请输入位置',
- }]
- },
- {
- label: '年代',
- name: 'age',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(103))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择年代',
- }],
- },
- {
- label: '要素类型',
- name: 'elementType',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(178))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择 要素类型',
- }],
- },
- {
- label: '编号',
- name: 'code',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '(可选)请输入编号',
- },
- },
- {
- label: '环境特点',
- name: 'environment',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入环境特点',
- maxLength: 500,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入环境特点',
- }]
- },
- {
- label: '文化故事',
- name: 'story',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入文化故事',
- maxLength: 1000,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入文化故事',
- }]
- },
- {
- label: '保存状况',
- name: 'condition',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入保存状况',
- maxLength: 500,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入保存状况',
- }]
- },
- {
- label: '功能特点',
- name: 'funcFeatures',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入功能特点',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入功能特点',
- }]
- },
- ]
- }]
- },
- 'environment': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入名称',
- },
- rules: [{
- required: true,
- message: '请输入名称',
- }]
- },
- {
- label: '自然环境',
- name: 'natural',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入自然环境',
- },
- rules: [{
- required: true,
- message: '请输入自然环境',
- }]
- },
- {
- label: '选址',
- name: 'siteSelection',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入选址',
- },
- rules: [{
- required: true,
- message: '请输入选址',
- }]
- },
- {
- label: '格局',
- name: 'structure',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入格局',
- },
- rules: [{
- required: true,
- message: '请输入格局',
- }]
- },
- {
- label: '整体风貌',
- name: 'overallStyle',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入整体风貌',
- },
- rules: [{
- required: true,
- message: '请输入整体风貌',
- }]
- },
- {
- label: '农业遗产',
- name: 'agriculturalHeritage',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入农业遗产',
- },
- rules: [{
- required: true,
- message: '请输入农业遗产',
- }]
- },
- ]
- }]
- },
- 'building': {
- [1]: villageInfoBuildingForm,
- [2]: villageInfoBuildingForm,
- [3]: villageInfoBuildingForm,
- },
- 'distribution': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '建筑数量',
- name: 'num',
- type: 'number',
- defaultValue: '',
- params: {
- min: 0,
- max: 100,
- },
- rules: [{
- required: true,
- message: '请输入建筑数量',
- }]
- },
- {
- label: '分布图',
- name: 'distribution',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/distribution'),
- maxFileSize: 1024 * 1024 * 20,
- single: true,
- } as UploaderFieldProps,
- rules: [{
- required: true,
- message: '请上传分布图',
- }]
- },
- {
- label: '营造智慧',
- name: 'wisdom',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入营造智慧',
- },
- rules: [{
- required: true,
- message: '请输入营造智慧',
- }]
- },
- ]
- }],
- },
- 'relic': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '建筑名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入建筑名称',
- },
- rules: [{
- required: true,
- message: '请输入建筑名称',
- }]
- },
- {
- label: '文物编码',
- name: 'code',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入文物编码',
- },
- rules: [{
- required: true,
- message: '请输入文物编码',
- }]
- },
- {
- label: '年代',
- name: 'age',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(103))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择年代',
- }],
- },
- {
- label: '简介',
- name: 'intro',
- type: 'richtext',
- defaultValue: '',
- params: {},
- rules: [{
- required: true,
- message: '请输入简介',
- }]
- },
- {
- label: '描述',
- name: 'description',
- type: 'richtext',
- defaultValue: '',
- params: {},
- rules: [{
- required: true,
- message: '请输入描述',
- }]
- },
- {
- label: '保护级别',
- name: 'level',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(158))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择保护级别',
- }],
- },
- {
- label: '文物类型',
- name: 'crType',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(3))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择文物类型',
- }],
- },
- {
- label: '经纬度',
- name: 'lonlat',
- type: 'select-lonlat',
- defaultValue: '',
- params: {},
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请输入经纬度',
- }]
- },
- {
- name: '',
- label: '平面坐标XY',
- children: {
- type: 'group',
- props: { type: 'row' } as FormGroupProps,
- propNestType: 'flat',
- items: [
- {
- label: '',
- name: 'mapX',
- type: 'number',
- defaultValue: 0,
- params: {
- min: -250,
- max: 250,
- } as StepperProps,
- itemParams: {
- labelWidth: '0rpx',
- labelPosition2: 'left',
- bottomMargin: false,
- },
- rules: [{
- required: true,
- message: '请输入X',
- }]
- },
- {
- label: '',
- name: 'mapY',
- type: 'number',
- defaultValue: 0,
- params: {
- min: -250,
- max: 250,
- } as StepperProps,
- itemParams: {
- labelWidth: '0rpx',
- labelPosition2: 'left',
- bottomMargin: false,
- },
- rules: [{
- required: true,
- message: '请输入Y',
- }]
- },
- ]
- }
- },
- {
- label: '地址',
- name: 'address',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入地址',
- },
- rules: [{
- required: true,
- message: '请输入地址',
- }]
- },
- {
- label: '图片',
- name: 'images',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/relic'),
- maxFileSize: 1024 * 1024 * 20,
- maxUploadCount: 20,
- } as UploaderFieldProps,
- rules: []
- },
- {
- label: '文化故事',
- name: 'content',
- type: 'richtext',
- defaultValue: '',
- params: {
- placeholder: '文化故事',
- maxLength: 5000,
- showWordLimit: true,
- } as FieldProps,
- rules: []
- },
- {
- label: '方位',
- name: 'orientation',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '方位' },
- rules: []
- },
- {
- label: '相对距离',
- name: 'distance',
- type: 'text',
- defaultValue: '',
- params: { placeholder: '相对距离' },
- rules: []
- },
- ]
- }],
- },
- 'folk_culture': {
- [1]: villageInfoFolkCultureForm,
- [2]: villageInfoFolkCultureForm,
- [3]: villageInfoFolkCultureForm,
- [4]: villageInfoFolkCultureForm,
- [5]: villageInfoFolkCultureForm,
- },
- 'ich': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '名称及管理编号',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入名称',
- },
- rules: [{
- required: true,
- message: '请输入名称',
- }]
- },
- {
- label: '编号',
- name: 'code',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入编号',
- },
- rules: [{
- required: true,
- message: '请输入编号',
- }]
- },
- {
- label: '文化资源关联内容ID',
- name: 'inheritor',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '输入文化资源关联内容ID',
- },
- rules: []
- },
- {
- label: '级别',
- name: 'ichLevel',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(111))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择级别',
- }],
- },
- {
- label: '类型',
- name: 'ichType',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(4))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择类型',
- }],
- },
- {
- label: '是否确定传承人',
- name: 'isInheritor',
- type: 'check-box-int',
- defaultValue: 0,
- params: {
- text: '是',
- } as CheckBoxToIntProps ,
- rules: [{
- required: true,
- message: '请选择是否确定传承人',
- }]
- },
- {
- label: '传承人情况',
- name: 'inheritor',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入传承人情况',
- },
- rules: [{
- required: true,
- message: '请输入输入传承人情况',
- }]
- },
- {
- label: '项目续存情况',
- name: 'ichExistenceStatus',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(120))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择项目续存情况',
- }],
- },
- {
- label: '与村落依存程度',
- name: 'ichDependenceDegree',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(124))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择与村落依存程度',
- }],
- },
- {
- label: '活动规模',
- name: 'activityScale',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(142))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择活动规模',
- }],
- },
- {
- label: '传承时间',
- name: 'inheritanceTime',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(147))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择传承时间',
- }],
- },
- {
- label: '具体传承时间',
- name: 'otherInheritanceTime',
- type: 'picker-datetime',
- show: { callback(model, rawModel) {
- return (rawModel.inheritanceTime === 150);
- } },
- params: {
- type: 'datetime',
- },
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择具体传承时间',
- }],
- },
- {
- label: '加入时间',
- name: 'joinAt',
- type: 'picker-datetime',
- params: {
- type: 'datetime',
- },
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择加入时间',
- }],
- },
- ]
- }],
- },
- 'travel_guide': {
- [0]: [CommonInfoModel, {
- items: [
- {
- label: '入村路线',
- name: 'villageRoute',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入入村路线',
- },
- rules: [{
- required: true,
- message: '请输入入村路线',
- }]
- },
- {
- label: '距离县城(KM)',
- name: 'county',
- type: 'number',
- defaultValue: '',
- params: { min: 0 },
- rules: [{
- required: true,
- message: '请输入距离县城',
- }]
- },
- {
- label: '距离镇区中心(KM)',
- name: 'town',
- type: 'number',
- defaultValue: '',
- params: { min: 0 },
- rules: [{
- required: true,
- message: '请输入距离镇区中心',
- }]
- },
- {
- label: '距离市中心(KM)',
- name: 'city',
- type: 'number',
- defaultValue: '',
- params: { min: 0 },
- rules: [{
- required: true,
- message: '请输入距离市中心',
- }]
- },
- {
- label: '最近高速收费站名称',
- name: 'tollStationName',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入最近高速收费站名称',
- },
- rules: [{
- required: true,
- message: '请输入最近高速收费站名称',
- }]
- },
- //有无公交车
- {
- label: '有无公交车',
- name: 'isBus',
- type: 'check-box-int',
- defaultValue: 0,
- params: {
- text: '有',
- },
- rules: [{
- required: true,
- message: '请选择有无公交车',
- }]
- },
- {
- label: '公交车介绍',
- name: 'busIntro',
- type: 'text',
- show: { callback: (_, rawModel) => (rawModel.isBus === 1) },
- defaultValue: '',
- params: {
- placeholder: '请输入公交车介绍',
- },
- rules: []
- },
- {
- label: '最近高速收费站名称',
- name: 'tollStation',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入最近高速收费站名称',
- },
- rules: []
- },
- {
- label: '距离最近火车站',
- name: 'trainStation',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入距离最近火车站',
- },
- rules: []
- },
- {
- label: '其他交通方式',
- name: 'otherBus',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入其他交通方式',
- },
- rules: []
- },
- {
- label: '景区全景图',
- name: 'panorama',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/travel/panorama'),
- maxFileSize: 1024 * 1024 * 20,
- single: true,
- } as UploaderFieldProps,
- rules: []
- },
- {
- label: '其他图',
- name: 'otherImage',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/travel/guide'),
- maxFileSize: 1024 * 1024 * 20,
- single: true,
- } as UploaderFieldProps,
- rules: []
- },
- //解说牌
- {
- label: '有无解说牌',
- name: 'introBoard',
- type: 'check-box-int',
- defaultValue: 0,
- params: {
- text: '有',
- },
- rules: [{
- required: true,
- message: '请选择有无解说牌',
- }]
- },
- {
- label: '其他解说牌',
- name: 'otherIntroBoard',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入其他解说牌',
- },
- rules: []
- },
- {
- label: '有无解指示牌',
- name: 'indicateBoard',
- type: 'check-box-int',
- defaultValue: 0,
- params: {
- text: '有',
- },
- rules: [{
- required: true,
- message: '请选择有无指示牌',
- }]
- },
- {
- label: '其他指示牌',
- name: 'otherIndicateBoard',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入其他指示牌',
- },
- rules: []
- },
- {
- label: '有无安全告示牌',
- name: 'safeBoard',
- type: 'check-box-int',
- defaultValue: 0,
- params: {
- text: '有',
- },
- rules: [{
- required: true,
- message: '请选择有无安全告示牌',
- }]
- },
- {
- label: '其他指示牌',
- name: 'otherSafeBoard',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入其他安全告示牌',
- },
- rules: []
- },
- {
- label: '有无游客服务中心',
- name: 'visitorCenter',
- type: 'check-box-int',
- defaultValue: 0,
- params: {
- text: '有',
- },
- rules: [{
- required: true,
- message: '请选择有有无游客服务中心',
- }]
- },
- {
- label: '游客服务中心面积',
- name: 'visitorCenterArea',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入游客服务中心面积',
- },
- rules: []
- },
- {
- label: '商业设施',
- name: 'business',
- type: 'select-id',
- params: {
- loadData: async () =>
- (await VillageInfoApi.getCategoryChildList(282))
- .map((p) => ({
- value: p.id,
- text: p.title,
- }))
- ,
- } as PickerIdFieldProps,
- itemParams: { showRightArrow: true } as FieldProps,
- rules: [{
- required: true,
- message: '请选择商业设施',
- }],
- },
- {
- label: '其他商业设施',
- name: 'otherBusiness',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入其他商业设施',
- },
- rules: []
- },
- //医疗点
- {
- label: '有无医疗点',
- name: 'medicalPoint',
- type: 'select',
- defaultValue: 0,
- params: {
- columns: [[
- { value: 0, text: '无' },
- { value: 1, text: '有' },
- { value: 2, text: '其他' }
- ]],
- singleValue: true,
- } as PickerFieldProps,
- itemParams: {
- showRightArrow: true,
- },
- rules: [{
- required: true,
- message: '请选择有无医疗点',
- }]
- },
- {
- label: '其他医疗点',
- name: 'otherMedicalPoint',
- type: 'text',
- show: { callback: (_, rawModel) => (rawModel.medicalPoint === 2) },
- defaultValue: '',
- params: {
- placeholder: '请输入其他医疗点',
- },
- rules: []
- },
- //医疗点
- {
- label: '有无游览车',
- name: 'tourBus',
- type: 'select',
- defaultValue: 0,
- params: {
- columns: [[
- { value: 0, text: '无' },
- { value: 1, text: '有' },
- { value: 2, text: '其他' }
- ]],
- singleValue: true,
- } as PickerFieldProps,
- itemParams: {
- showRightArrow: true,
- },
- rules: [{
- required: true,
- message: '请选择有无游览车',
- }]
- },
- {
- label: '其他游览车',
- name: 'otherTourBus',
- type: 'text',
- show: { callback: (_, rawModel) => (rawModel.tourBus === 2) },
- defaultValue: '',
- params: {
- placeholder: '请输入其他游览车',
- },
- rules: []
- },
- //
- {
- label: '机动车停车场(单位:辆)',
- name: 'parkingLot',
- type: 'number',
- defaultValue: 0,
- params: { min: 0 },
- rules: []
- },
- {
- label: '分类垃圾点(单位:处)',
- name: 'garbagePoint',
- type: 'number',
- defaultValue: 0,
- params: { min: 0 },
- rules: []
- },
- {
- label: '公共卫生间(单位:处)',
- name: 'publicToilets',
- type: 'number',
- defaultValue: 0,
- params: { min: 0 },
- rules: []
- },
- ]
- }]
- },
- 'route': {
- [1]: [CommonInfoModel, {
- items: [
- {
- label: '游览路线',
- name: 'route',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入游览路线',
- },
- rules: [{
- required: true,
- message: '请输入游览路线',
- }]
- },
- {
- label: '路线名称',
- name: 'name',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入路线名称',
- },
- rules: [{
- required: true,
- message: '请输入路线名称',
- }]
- },
- {
- label: '描述',
- name: 'desc',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入描述',
- },
- rules: [{
- required: true,
- message: '请输入描述',
- }]
- },
- {
- label: '起始点',
- name: 'startPoint',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入起始点',
- },
- rules: [{
- required: true,
- message: '请输入起始点',
- }]
- },
- {
- label: '终止点',
- name: 'endPoint',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入终止点',
- },
- rules: [{
- required: true,
- message: '请输入终止点',
- }]
- },
- {
- label: '预计时长(小时)',
- name: 'estimate',
- type: 'number',
- defaultValue: 1,
- params: {
- min: 1,
- },
- rules: [{
- required: true,
- message: '请输入预计时长',
- }]
- },
- ]
- }],
- [2]: [CommonInfoModel, {
- items: [
- {
- label: '活动标题',
- name: 'activity',
- type: 'text',
- defaultValue: '',
- params: {
- placeholder: '请输入活动标题',
- },
- rules: [{
- required: true,
- message: '请输入活动标题',
- }]
- },
- {
- label: '活动开始时间',
- name: 'startTime',
- type: 'picker-datetime',
- defaultValue: '',
- params: {
- type: 'datetime',
- },
- rules: [{
- required: true,
- message: '请选择活动开始时间',
- }],
- },
- {
- label: '活动结束时间',
- name: 'endTime',
- type: 'picker-datetime',
- defaultValue: '',
- params: {
- type: 'datetime',
- },
- rules: [{
- required: true,
- message: '请选择活动结束时间',
- }],
- },
- {
- label: '活动时长(分钟)',
- name: 'duration',
- type: 'number',
- defaultValue: 0,
- params: {
- min: 0,
- },
- rules: [{
- required: true,
- message: '请选择活动时长',
- }],
- },
- ]
- }],
- [3]: [CommonInfoModel, {
- items: [
- {
- label: '特色',
- name: 'advant',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入特色',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入特色',
- }]
- },
- {
- label: '文化背景',
- name: 'intro',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入文化背景',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入文化背景',
- }]
- },
- {
- label: '精彩推荐',
- name: 'recommend',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入精彩推荐',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入精彩推荐',
- }]
- },
- {
- label: '推荐描述',
- name: 'reason',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入推荐描述',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入推荐描述',
- }]
- },
- {
- label: '活动亮点',
- name: 'highlight',
- type: 'textarea',
- defaultValue: '',
- params: {
- placeholder: '请输入活动亮点',
- maxLength: 300,
- showWordLimit: true,
- } as FieldProps,
- rules: [{
- required: true,
- message: '请输入活动亮点',
- }]
- },
- {
- label: '图片视频',
- name: 'images',
- type: 'uploader',
- defaultValue: '',
- params: {
- upload: useAliOssUploadCo('xiangyuan/activity'),
- maxFileSize: 1024 * 1024 * 20,
- maxUploadCount: 20,
- } as UploaderFieldProps,
- rules: []
- },
- ]
- }]
- },
- 'food_product': {
- [1]: villageInfoFoodProductsForm,
- [2]: villageInfoFoodProductsForm,
- [3]: villageInfoFoodProductsForm,
- [4]: villageInfoFoodProductsForm,
- [5]: villageInfoFoodProductsForm,
- [6]: villageInfoFoodProductsForm,
- },
- }
- export function getVillageInfoForm(subType: string, subId: number) {
- const group = villageInfoForm[subType];
- if (!group)
- throw new Error('subType ' + subType + ' not found');
- return group[subId];
- }
|