Selaa lähdekoodia

reactor:随手拍新增地图位置标点查看;

zhangchong 4 kuukautta sitten
vanhempi
commit
676e5c4523

+ 11 - 0
src/api/snapshot/config.ts

@@ -294,4 +294,15 @@ export const delVolunteer = (data: object) => {
 		method: 'delete',
 		data,
 	});
+}
+/**
+ * @description 行业修改记录
+ * @param {object} params
+ */
+export const getIndustryEditRecord = (params?: object) => {
+	return request({
+		url: '/api/v1/Industry/order/industry/log',
+		method: 'get',
+		params,
+	});
 }

+ 2 - 2
src/views/snapshot/config/industry/components/Industry-add.vue

@@ -267,10 +267,10 @@ const state = reactive<any>({
 			label: '图片配置',
 			name: '1',
 		},
-		{
+	/*	{
 			label: '操作权限',
 			name: '3',
-		},
+		},*/
 	],
 });
 

+ 369 - 213
src/views/snapshot/config/industry/components/Industry-edit.vue

@@ -1,207 +1,254 @@
 <template>
-		<el-dialog v-model="state.dialogVisible" width="50%" draggable title="编辑行业"  destroy-on-close append-to-body @close="close">
-			<template #header>
-				<el-tabs v-model="state.activeName">
-					<el-tab-pane :name="item.name" v-for="item in state.tabPaneList" :key="item.name" :label="item.label"></el-tab-pane>
-				</el-tabs>
-			</template>
-			<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" :disabled="loading">
-				<el-row :gutter="10" v-show="state.activeName === '0'">
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="行业名称" prop="name" :rules="[{ required: true, message: '请填写行业名称', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.name" placeholder="请填写行业名称" clearable></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="市民红包" prop="citizenReadPackAmount" :rules="[{ required: true, message: '请填写市民红包', trigger: 'blur' }]">
-							<el-input-number v-model="state.ruleForm.citizenReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写市民红包"/>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="网格员红包" prop="guiderReadPackAmount" :rules="[{ required: true, message: '请填写网格员红包', trigger: 'blur' }]">
-							<el-input-number v-model="state.ruleForm.guiderReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写网格员红包"/>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="阶段性回复间隔时间" prop="intervalTime" label-width="150px" :rules="[{ required: false, message: '请填写阶段性回复间隔时间', trigger: 'blur' }]">
-							<el-input type="number" v-model="state.ruleForm.intervalTime" placeholder="请填写阶段性回复间隔时间">
-								<template #suffix>
-									小时
-								</template>
-							</el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="审批部门" prop="approveOrgId" :rules="[{ required: false, message: '请选择审批部门', trigger: 'change' }]">
-							<el-select v-model="state.ruleForm.approveOrgId" placeholder="请选择审批部门" class="w100">
-								<el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="关联宣传学习" prop="bulletinTypePublicityId" :rules="[{ required: false, message: '请选择关联宣传学习', trigger: 'change' }]">
-							<el-select v-model="state.ruleForm.bulletinTypePublicityId" placeholder="请选择关联宣传学习" class="w100">
-								<el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="关联操作指引" prop="bulletinTypeGuideId" :rules="[{ required: false, message: '请选择关联操作指引', trigger: 'change' }]">
-							<el-select v-model="state.ruleForm.bulletinTypeGuideId" placeholder="请选择关联操作指引" class="w100">
-								<el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="关联受理类型" prop="acceptTypeCode" :rules="[{ required: false, message: '请选择关联受理类型', trigger: 'change' }]">
-							<el-select v-model="state.ruleForm.acceptTypeCode" placeholder="请选择关联受理类型" class="w100">
-								<el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="标题追加信息" prop="titleSuffix" :rules="[{ required: false, message: '请填写标题追加信息', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.titleSuffix" placeholder="请填写标题追加信息" clearable></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="系统状态" prop="isEnable">
-							<el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="小程序状态" prop="isAffix">
-							<el-switch v-model="state.ruleForm.isAffix" inline-prompt active-text="启用" inactive-text="禁用" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="排序" prop="displayOrder" :rules="[{ required: false, message: '请填写排序', trigger: 'blur' }]">
-							<el-input-number v-model="state.ruleForm.displayOrder" :min="1" :precision="0" class="w100"/>
-						</el-form-item>
-					</el-col>
-					<el-col>
-						<el-form-item label="页面Url" prop="pageUrl" :rules="[{ required: false, message: '请填写页面Url', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.pageUrl" placeholder="请填写页面Url" clearable></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col>
-						<el-form-item label="关怀页面Ur" prop="pageCareUrl" :rules="[{ false: true, message: '请填写关怀页面Ur', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.pageCareUrl" placeholder="请填写关怀页面Ur" clearable></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="帮助引导用语" prop="txtHelpRemarks" :rules="[{ required: false, message: '请填写帮助引导用语', trigger: 'blur' }]">
-							<el-input
-								type="textarea"
-								:autosize="{ minRows: 6, maxRows: 10 }"
-								v-model="state.ruleForm.txtHelpRemarks"
-								placeholder="请填写帮助引导用语"
-								clearable
-							></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="宫格说明文本" prop="txtRemarks" :rules="[{ required: false, message: '请填写宫格说明文本', trigger: 'blur' }]">
-							<el-input
-								type="textarea"
-								:autosize="{ minRows: 6, maxRows: 10 }"
-								v-model="state.ruleForm.txtRemarks"
-								placeholder="请填写宫格说明文本"
-								clearable
-							></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="关怀说明" prop="txtCareRemarks" :rules="[{ required: false, message: '请填写关怀说明', trigger: 'blur' }]">
-							<el-input
-								type="textarea"
-								:autosize="{ minRows: 6, maxRows: 10 }"
-								v-model="state.ruleForm.txtCareRemarks"
-								placeholder="请填写关怀说明"
-								clearable
-							></el-input>
-						</el-form-item>
-					</el-col>
-
-				</el-row>
-				<el-row v-show="state.activeName === '1'">
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="背景图片" prop="settingName">
-							<el-upload
-								class="avatar-uploader"
-								:action="action"
-								:show-file-list="false"
-								:on-success="updateSuccess"
-								ref="uploadListRef"
-								name="fileData"
-							>
-								<img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
-								<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
-							</el-upload>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="banner设置" prop="settingName">
-							<el-upload
-								class="avatar-uploader"
-								:action="action"
-								:show-file-list="false"
-							>
-								<img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
-								<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
-							</el-upload>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="宫格图" prop="settingName">
-							<el-upload
-								class="avatar-uploader"
-								:action="action"
-								:show-file-list="false"
-							>
-								<img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
-								<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
-							</el-upload>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="关怀宫格图" prop="settingName">
-							<el-upload
-								class="avatar-uploader"
-								:action="action"
-								:show-file-list="false"
-							>
-								<img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
-								<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
-							</el-upload>
-						</el-form-item>
-					</el-col>
-					<el-col>
-						<el-form-item label="附件">
-							<annex-list classify="行业管理上传" v-model="state.ruleForm.files" v-model:format="filesFormat" />
-						</el-form-item>
-					</el-col>
-				</el-row>
-				<el-row v-show="state.activeName === '2'">
-
-				</el-row>
-			</el-form>
-			<template #footer>
-				<span class="dialog-footer">
-					<el-button @click="closeDialog" class="default-button">取 消</el-button>
-					<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
-				</span>
-			</template>
-		</el-dialog>
+	<el-dialog v-model="state.dialogVisible" width="50%" draggable title="编辑行业" destroy-on-close append-to-body @close="close">
+		<template #header>
+			<el-tabs v-model="state.activeName">
+				<el-tab-pane :name="item.name" v-for="item in state.tabPaneList" :key="item.name" :label="item.label"></el-tab-pane>
+			</el-tabs>
+		</template>
+		<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef">
+			<el-row :gutter="10" v-show="state.activeName === '0'">
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="行业名称" prop="name" :rules="[{ required: true, message: '请填写行业名称', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.name" placeholder="请填写行业名称" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="市民红包" prop="citizenReadPackAmount" :rules="[{ required: true, message: '请填写市民红包', trigger: 'blur' }]">
+						<el-input-number v-model="state.ruleForm.citizenReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写市民红包" />
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="网格员红包" prop="guiderReadPackAmount" :rules="[{ required: true, message: '请填写网格员红包', trigger: 'blur' }]">
+						<el-input-number v-model="state.ruleForm.guiderReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写网格员红包" />
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item
+						label="阶段性回复间隔时间"
+						prop="intervalTime"
+						label-width="150px"
+						:rules="[{ required: false, message: '请填写阶段性回复间隔时间', trigger: 'blur' }]"
+					>
+						<el-input type="number" v-model.number="state.ruleForm.intervalTime" placeholder="请填写阶段性回复间隔时间">
+							<template #suffix> 小时 </template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="审批部门" prop="approveOrgId" :rules="[{ required: false, message: '请选择审批部门', trigger: 'change' }]">
+						<el-select
+							v-model="state.ruleForm.approveOrgId"
+							placeholder="请选择审批部门"
+							class="w100"
+							clearable
+							@change="selectDepartment"
+							filterable
+						>
+							<el-option v-for="item in department" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item
+						label="关联宣传学习"
+						prop="bulletinTypePublicityId"
+						:rules="[{ required: false, message: '请选择关联宣传学习', trigger: 'change' }]"
+					>
+						<el-select
+							v-model="state.ruleForm.bulletinTypePublicityId"
+							placeholder="请选择关联宣传学习"
+							class="w100"
+							clearable
+							@change="selectxc"
+							filterable
+						>
+							<el-option v-for="item in bulletinType" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item
+						label="关联操作指引"
+						prop="bulletinTypeGuideId"
+						:rules="[{ required: false, message: '请选择关联操作指引', trigger: 'change' }]"
+					>
+						<el-select
+							v-model="state.ruleForm.bulletinTypeGuideId"
+							placeholder="请选择关联操作指引"
+							class="w100"
+							clearable
+							@change="selectzy"
+							filterable
+						>
+							<el-option v-for="item in bulletinType" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="关联受理类型" prop="acceptTypeCode" :rules="[{ required: false, message: '请选择关联受理类型', trigger: 'change' }]">
+						<el-select
+							v-model="state.ruleForm.acceptTypeCode"
+							placeholder="请选择关联受理类型"
+							class="w100"
+							clearable
+							@change="selectAcceptType"
+							filterable
+						>
+							<el-option v-for="item in acceptType" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="标题追加信息" prop="titleSuffix" :rules="[{ required: false, message: '请填写标题追加信息', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.titleSuffix" placeholder="请填写标题追加信息" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="系统状态" prop="isEnable">
+						<el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" />
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="小程序状态" prop="IsAppEnable">
+						<el-switch v-model="state.ruleForm.IsAppEnable" inline-prompt active-text="启用" inactive-text="禁用" />
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="排序" prop="displayOrder" :rules="[{ required: false, message: '请填写排序', trigger: 'blur' }]">
+						<el-input-number v-model="state.ruleForm.displayOrder" :min="1" :precision="0" class="w100" />
+					</el-form-item>
+				</el-col>
+				<el-col>
+					<el-form-item label="页面Url" prop="pageUrl" :rules="[{ required: false, message: '请填写页面Url', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.pageUrl" placeholder="请填写页面Url" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col>
+					<el-form-item label="关怀页面Ur" prop="pageCareUrl" :rules="[{ false: true, message: '请填写关怀页面Ur', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.pageCareUrl" placeholder="请填写关怀页面Ur" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+					<el-form-item label="帮助引导用语" prop="txtHelpRemarks" :rules="[{ required: false, message: '请填写帮助引导用语', trigger: 'blur' }]">
+						<el-input
+							type="textarea"
+							:autosize="{ minRows: 6, maxRows: 10 }"
+							v-model="state.ruleForm.txtHelpRemarks"
+							placeholder="请填写帮助引导用语"
+							clearable
+						></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+					<el-form-item label="宫格说明文本" prop="txtRemarks" :rules="[{ required: false, message: '请填写宫格说明文本', trigger: 'blur' }]">
+						<el-input
+							type="textarea"
+							:autosize="{ minRows: 6, maxRows: 10 }"
+							v-model="state.ruleForm.txtRemarks"
+							placeholder="请填写宫格说明文本"
+							clearable
+						></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+					<el-form-item label="关怀说明" prop="txtCareRemarks" :rules="[{ required: false, message: '请填写关怀说明', trigger: 'blur' }]">
+						<el-input
+							type="textarea"
+							:autosize="{ minRows: 6, maxRows: 10 }"
+							v-model="state.ruleForm.txtCareRemarks"
+							placeholder="请填写关怀说明"
+							clearable
+						></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row v-show="state.activeName === '1'">
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="背景图片">
+						<el-upload
+							class="avatar-uploader"
+							:action="action"
+							:show-file-list="false"
+							:on-success="updateSuccessBg"
+							ref="uploadListRefBg"
+							name="fileData"
+							:on-error="onUploadError"
+						>
+							<img v-if="bgUrl" :src="bgUrl" class="avatar" alt="" />
+							<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
+						</el-upload>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="banner设置">
+						<el-upload
+							class="avatar-uploader"
+							:action="action"
+							:show-file-list="false"
+							:on-success="updateSuccessBanner"
+							ref="uploadListRefBanner"
+							name="fileData"
+							:on-error="onUploadError"
+						>
+							<img v-if="bannerUrl" :src="bannerUrl" class="avatar" alt="" />
+							<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
+						</el-upload>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="宫格图">
+						<el-upload
+							class="avatar-uploader"
+							:action="action"
+							:show-file-list="false"
+							:on-success="updateSuccessCell"
+							ref="uploadListRefCell"
+							name="fileData"
+							:on-error="onUploadError"
+						>
+							<img v-if="cellImgUrl" :src="cellImgUrl" class="avatar" alt="" />
+							<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
+						</el-upload>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="关怀宫格图">
+						<el-upload
+							class="avatar-uploader"
+							:action="action"
+							:show-file-list="false"
+							:on-success="updateSuccessCareCell"
+							ref="uploadListRefCareCell"
+							name="fileData"
+							:on-error="onUploadError"
+						>
+							<img v-if="careCellImgUrl" :src="careCellImgUrl" class="avatar" alt="" />
+							<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
+						</el-upload>
+					</el-form-item>
+				</el-col>
+				<el-col>
+					<el-form-item label="附件">
+						<annex-list classify="行业管理上传" v-model="state.ruleForm.files" v-model:format="filesFormat" />
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row v-show="state.activeName === '2'"> </el-row>
+		</el-form>
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="closeDialog" class="default-button">取 消</el-button>
+				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
+			</span>
+		</template>
+	</el-dialog>
 </template>
 
 <script setup lang="ts" name="parameterEdit">
-import { computed, defineAsyncComponent, reactive, ref } from 'vue';
+import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, FormInstance, UploadFile, UploadFiles } from 'element-plus';
 import { throttle, transformFile } from '@/utils/tools';
-import { modifySettings, setitngsDetail } from '@/api/system/parameter';
-import { editIndustry, getIndustryDetail } from '@/api/snapshot/config';
-
+import { baseIndustry, editIndustry, getIndustryDetail } from '@/api/snapshot/config';
 
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue')); // 附件列表
 // 定义子组件向父组件传值/事件
@@ -217,8 +264,8 @@ const state = reactive<any>({
 		sort: 1, // 排序
 		remark: '', // 参数说明
 	},
-	activeName:'0',
-	tabPaneList:[
+	activeName: '0',
+	tabPaneList: [
 		{
 			label: '参数配置',
 			name: '0',
@@ -227,29 +274,117 @@ const state = reactive<any>({
 			label: '图片配置',
 			name: '1',
 		},
-		{
+	/*	{
 			label: '操作权限',
 			name: '3',
-		},
+		},*/
 	],
 });
-const imageUrl = ref('')
+
+
+// 审批部门
+const selectDepartment = (val: any) => {
+	if (val) {
+		const item = department.value.find((item: any) => item.dicDataValue === val);
+		state.ruleForm.approveOrgName = item?.dicDataName;
+	} else {
+		state.ruleForm.approveOrgName = null;
+	}
+};
+// 关联宣传学习
+const selectxc = (val: any) => {
+	if (val) {
+		const item = bulletinType.value.find((item: any) => item.dicDataValue === val);
+		state.ruleForm.bulletinTypePublicityName = item?.dicDataName;
+	} else {
+		state.ruleForm.bulletinTypePublicityName = null;
+	}
+};
+// 关联操作指引
+const selectzy = (val: any) => {
+	if (val) {
+		const item = bulletinType.value.find((item: any) => item.dicDataValue === val);
+		state.ruleForm.bulletinTypeGuideName = item?.dicDataName;
+	} else {
+		state.ruleForm.bulletinTypeGuideName = null;
+	}
+};
+// 受理类型
+const selectAcceptType = (val: any) => {
+	if (val) {
+		const item = acceptType.value.find((item: any) => item.dicDataValue === val);
+		state.ruleForm.acceptType = item?.dicDataName;
+	} else {
+		state.ruleForm.acceptType = null;
+	}
+};
+// 上传地址
 const action = computed(() => {
 	return import.meta.env.VITE_API_UPLOAD_URL + '/file/upload?source=hotline';
 });
-const uploadListRef = ref<RefType>(); // 上传组件ref
-// 上传成功
-const updateSuccess = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
+const bgUrl = ref(''); // 背景图
+const uploadListRefBg = ref<RefType>(); // 上传组件ref
+// 上传成功背景图
+const updateSuccessBg = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
+	if (response.result.path) {
+		// bgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
+		bgUrl.value = URL.createObjectURL(uploadFile.raw!);
+		state.ruleForm.backgroundImgUrl = response.result.path;
+	} else {
+		uploadListRefBg.value.handleRemove(uploadFile);
+		ElMessage.error('上传失败');
+	}
+};
+// banner图
+const bannerUrl = ref('');
+const uploadListRefBanner = ref<RefType>();
+const updateSuccessBanner = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
+	if (response.result.path) {
+		// bannerUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
+		bannerUrl.value = URL.createObjectURL(uploadFile.raw!);
+		state.ruleForm.bannerImgUrl = response.result.path;
+	} else {
+		uploadListRefBanner.value.handleRemove(uploadFile);
+		ElMessage.error('上传失败');
+	}
+};
+// 宫格图
+const cellImgUrl = ref('');
+const uploadListRefCell = ref<RefType>();
+const updateSuccessCell = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
+	if (response.result.path) {
+		// cellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
+		cellImgUrl.value = URL.createObjectURL(uploadFile.raw!);
+		state.ruleForm.cellImgUrl = response.result.path;
+	} else {
+		uploadListRefCell.value.handleRemove(uploadFile);
+		ElMessage.error('上传失败');
+	}
+};
+// 关怀宫格图
+const careCellImgUrl = ref('');
+const uploadListRefCareCell = ref<RefType>();
+const updateSuccessCareCell = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
 	if (response.result.path) {
-		console.log(response);
-		imageUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
+		// careCellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
+		careCellImgUrl.value = URL.createObjectURL(uploadFile.raw!);
+		state.ruleForm.careCellImgUrl = response.result.path;
 	} else {
-		uploadListRef.value.handleRemove(uploadFile);
+		uploadListRefCareCell.value.handleRemove(uploadFile);
+		ElMessage.error('上传失败');
+	}
+};
+// 上传失败
+const onUploadError = (error: Error) => {
+	try {
+		const errMessage = JSON.parse(error.message)?.message ?? '上传失败';
+		ElMessage.error(errMessage);
+	} catch (e) {
 		ElMessage.error('上传失败');
 	}
 };
 
-let loading = ref<boolean>(false);  // 加载状态
+let loading = ref<boolean>(false); // 加载状态
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
 const openDialog = async (id: string) => {
@@ -259,12 +394,17 @@ const openDialog = async (id: string) => {
 		const res: any = await getIndustryDetail(id);
 		state.ruleForm = res.result ?? <EmptyObjectType>{};
 		state.ruleForm.files = transformFile(res.result.files);
+		bgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.backgroundImgUrl; // 背景图
+		bannerUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.bannerImgUrl;
+		cellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.cellImgUrl;
+		careCellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.careCellImgUrl;
 		loading.value = false;
 	} catch (error) {
 		console.log(error);
 		loading.value = false;
 	}
 };
+
 // 关闭弹窗
 const closeDialog = () => {
 	state.dialogVisible = false;
@@ -275,13 +415,12 @@ const close = () => {
 	state.ruleForm.files = [];
 };
 const filesFormat = ref<EmptyArrayType>([]); // 附件列表格式化
-// 新增
+// 编辑
 const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	await formEl.validate((valid: boolean) => {
 		if (!valid) return;
 		loading.value = true;
-		state.ruleForm.settingValue = state.ruleForm?.settingValue.split('|');
 		editIndustry(state.ruleForm)
 			.then(() => {
 				ElMessage({
@@ -299,6 +438,23 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 			});
 	});
 }, 300);
+// 获取基础数据
+const acceptType = ref<EmptyArrayType>([]); // 受理类型
+const bulletinType = ref<EmptyArrayType>([]); // 公告类型
+const department = ref<EmptyArrayType>([]); // 审批部门
+const getBaseData = async () => {
+	try {
+		const { result } = await baseIndustry();
+		acceptType.value = result.acceptType;
+		bulletinType.value = result.bulletinType;
+		department.value = result.department;
+	} catch (e) {
+		console.log(e);
+	}
+};
+onMounted(() => {
+	getBaseData();
+});
 // 暴露变量
 defineExpose({
 	openDialog,
@@ -332,4 +488,4 @@ defineExpose({
 	height: 178px;
 	text-align: center;
 }
-</style>
+</style>

+ 11 - 0
src/views/snapshot/config/info/audit/index.vue

@@ -0,0 +1,11 @@
+<script setup lang="ts">
+
+</script>
+
+<template>
+
+</template>
+
+<style scoped lang="scss">
+
+</style>

+ 11 - 0
src/views/snapshot/config/info/sspConfig/index.vue

@@ -0,0 +1,11 @@
+<script setup lang="ts">
+
+</script>
+
+<template>
+
+</template>
+
+<style scoped lang="scss">
+
+</style>

+ 30 - 20
src/views/snapshot/config/modifyRecord/index.vue

@@ -4,18 +4,18 @@
 			<vxe-grid v-bind="gridOptions" ref="gridRef">
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
-						<el-form-item label="工单编码" prop="CaseName">
+						<el-form-item label="工单编码" prop="No">
 							<el-input
-								v-model="state.queryParams.CaseName"
+								v-model="state.queryParams.No"
 								placeholder="请填写工单编码"
 								clearable
 								@keyup.enter="handleQuery"
 								class="keyword-input"
 							/>
 						</el-form-item>
-						<el-form-item label="修改人员" prop="IndustryName">
+						<el-form-item label="修改人员" prop="ChangeName">
 							<el-input
-								v-model="state.queryParams.IndustryName"
+								v-model="state.queryParams.ChangeName"
 								placeholder="请填写修改人员"
 								clearable
 								@keyup.enter="handleQuery"
@@ -29,7 +29,7 @@
 					</el-form>
 				</template>
 				<template #order_detail="{ row }">
-					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+					<order-detail :order="{id:row.orderId}" @updateList="queryList">{{ row.title }}</order-detail>
 				</template>
 				<template #pager>
 					<pagination
@@ -45,11 +45,11 @@
 		<!--	更多查询	-->
 		<el-drawer v-model="drawer" title="更多查询" size="500px">
 			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
-				<el-form-item label="原行业" prop="ActualHandleOrgName">
-					<el-input v-model="state.queryParams.ActualHandleOrgName" placeholder="请填写原行业" clearable @keyup.enter="handleQuery" />
+				<el-form-item label="原行业" prop="oldIndustryName">
+					<el-input v-model="state.queryParams.oldIndustryName" placeholder="请填写原行业" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
-				<el-form-item label="新行业" prop="ActualHandleOrgName">
-					<el-input v-model="state.queryParams.ActualHandleOrgName" placeholder="请填写新行业" clearable @keyup.enter="handleQuery" />
+				<el-form-item label="新行业" prop="IndustryName">
+					<el-input v-model="state.queryParams.IndustryName" placeholder="请填写新行业" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
 				<el-form-item label="修改时间" prop="xgTime">
 					<el-date-picker
@@ -77,8 +77,9 @@
 <script lang="tsx" setup name="snapshotConfigModifyRecord">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getClueList } from '@/api/snapshot/config';
+import { getIndustryEditRecord } from '@/api/snapshot/config';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -91,9 +92,13 @@ const state = reactive<any>({
 		// 查询参数
 		PageIndex: 1,
 		PageSize: 20,
-		CaseName: null, // 线索名称
-		IndustryName: null, // 行业类型
-		xgTime: [],
+		ChangeName:null, // 修改人
+		No: null, // 工单编码
+		oldIndustryName: null, // 原行业
+		IndustryName: null, // 新行业
+		xgTime: [], // 修改时间
+		BeginTime:null,
+		EndTime:null,
 	},
 	total: 0, // 总条数
 });
@@ -126,7 +131,7 @@ const gridOptions = reactive<any>({
 	height: 'auto',
 	columns: [
 		{
-			field: 'name',
+			field: 'no',
 			title: '工单编码',
 		},
 		{
@@ -136,20 +141,20 @@ const gridOptions = reactive<any>({
 			slots: { default: 'order_detail' },
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'creationTime',
 			title: '修改时间',
-			// formatter: 'formatDate',
+			formatter: 'formatDate',
 		},
 		{
-			field: 'guiderReadPackAmountTxt',
+			field: 'creatorName',
 			title: '修改人员',
 		},
 		{
-			field: 'displayOrder',
+			field: 'oldIndustryName',
 			title: '原行业类型',
 		},
 		{
-			field: 'displayOrder',
+			field: 'industryName',
 			title: '新行业类型',
 		},
 	],
@@ -160,11 +165,16 @@ const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
 	queryList();
 };
+const requestParams = ref<EmptyObjectType>({});
 // 获取参数列表
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getClueList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.BeginTime = state.queryParams.xgTime === null ? null : state.queryParams.xgTime[0]; // 受理时间
+	requestParams.value.EndTime = state.queryParams.xgTime === null ? null : state.queryParams.xgTime[1];
+	Reflect.deleteProperty(requestParams.value, 'xgTime'); // 删除无用的参数
+	getIndustryEditRecord(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];

+ 4 - 4
src/views/snapshot/config/volunteer/components/Report-detail.vue

@@ -10,9 +10,9 @@
 				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 					<el-form-item label="作业类型">{{ state.ruleForm.jobType }}</el-form-item>
 				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+<!--				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 					<el-form-item label="施工人员姓名">{{ state.ruleForm.name }}</el-form-item>
-				</el-col>
+				</el-col>-->
 				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 					<el-form-item label="联系电话">{{ state.ruleForm.phoneNumber }}</el-form-item>
 				</el-col>
@@ -22,9 +22,9 @@
 				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 					<el-form-item label="上报时间">{{ formatDate(state.ruleForm.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</el-form-item>
 				</el-col>
-				<el-col>
+<!--				<el-col>
 					<el-form-item label="作业描述">{{ state.ruleForm.jobType }}</el-form-item>
-				</el-col>
+				</el-col>-->
 			</el-row>
 		</el-form>
 		<div v-show="state.activeName === '1'">

+ 2 - 2
src/views/snapshot/config/volunteer/report.vue

@@ -113,11 +113,11 @@ const gridOptions = reactive<any>({
 			formatter: 'formatDate',
 		},
 		{
-			field: 'name',
+			field: 'volunteer',
 			title: '志愿者姓名',
 		},
 		{
-			field: 'phoneNumber',
+			field: 'volunteerPhone',
 			title: '志愿者电话',
 		},
 		{