2025008071805

This commit is contained in:
张潘 2025-08-08 18:56:35 +08:00
parent 3331ea2609
commit 04bf2bae48
5 changed files with 344 additions and 472 deletions

View File

@ -311,10 +311,10 @@ public class AppleOrderController extends BaseController {
ordertype=2;
UserUseSecondaryCard userUseSecondaryCard = userUseSecondaryCardService.selectUserUseSecondaryCardByorderId(cikaid);
if (userUseSecondaryCard == null){
return AjaxResult.error("此卡不存在");
return AppletControllerUtil.appletWarning("此卡不存在");
}
if (userUseSecondaryCard.getStatus() != 1){
return AjaxResult.error("此卡不是使用状态");
return AppletControllerUtil.appletWarning("此卡不是使用状态");
}
}
String ptcode=GenerateCustomCode.generCreateOrder("PT");

View File

@ -49,6 +49,19 @@ public class DiyCityController extends BaseController
List<DiyCity> list = diyCityService.selectDiyCityList(diyCity);
return getDataTable(list);
}
/**
* 查询自定义地区列表
*/
@PreAuthorize("@ss.hasPermi('system:DiyCity:list')")
@GetMapping("/datalist")
public AjaxResult listdata(DiyCity diyCity)
{
List<DiyCity> list = diyCityService.selectDiyCityList(diyCity);
return success(list);
}
/**
* 获取自定义地区树形结构数据
*/

View File

@ -71,13 +71,13 @@ public class SiteSkillController extends BaseController
SiteSkill siteSkill = new SiteSkill();
siteSkill.setStatus(1L); // 只获取启用状态的技能
List<SiteSkill> list = siteSkillService.selectSiteSkillList(siteSkill);
// 按照排序字段升序排列
list.sort((a, b) -> {
if (a.getSort() == null && b.getSort() == null) return 0;
if (a.getSort() == null) return 1;
if (b.getSort() == null) return -1;
return a.getSort().compareTo(b.getSort());
});
// // 按照排序字段升序排列
// list.sort((a, b) -> {
// if (a.getSort() == null && b.getSort() == null) return 0;
// if (a.getSort() == null) return 1;
// if (b.getSort() == null) return -1;
// return a.getSort().compareTo(b.getSort());
// });
return success(list);
}

View File

@ -8,6 +8,17 @@ export function listDiyCity(query) {
params: query
})
}
// 查询自定义地区列表
export function datalist(query) {
return request({
url: '/system/DiyCity/datalist',
method: 'get',
params: query
})
}
// 查询自定义地区详细
export function getDiyCity(id) {

View File

@ -43,20 +43,31 @@
<el-form-item label="服务城市" prop="serviceCityPid">
<el-select
v-model="form.serviceCityPid"
v-model="selectedCities"
placeholder="请选择服务城市"
filterable
@change="handleProvinceChange"
multiple
collapse-tags
style="width: 100%">
style="width: 100%"
@change="handleCityChange">
<el-option
v-for="item in selectAreaShenDataList"
v-for="item in cityList"
:key="item.id"
:label="item.title"
:value="item.id">
</el-option>
</el-select>
<!-- 显示已选择的城市标签 -->
<div class="selected-tags" v-if="selectedCities.length > 0">
<el-tag
v-for="cityId in selectedCities"
:key="cityId"
closable
@close="removeCity(cityId)"
style="margin: 2px;">
{{ getCityName(cityId) }}
</el-tag>
</div>
</el-form-item>
<el-form-item label="服务地区" prop="serviceCityIds">
@ -66,9 +77,10 @@
filterable
multiple
collapse-tags
style="width: 100%">
style="width: 100%"
@change="handleAreaChange">
<el-option
v-for="item in selectAreaShiDataList"
v-for="item in areaList"
:key="item.id"
:label="item.title"
:value="item.id">
@ -104,6 +116,7 @@
:value="item.id"
/>
</el-select>
<!-- 显示已选择的技能标签 -->
<div class="selected-tags" v-if="selectedSkills.length > 0">
<el-tag
v-for="skillId in selectedSkills"
@ -120,9 +133,7 @@
</el-form-item>
<el-form-item label="当前佣金" prop="commission">
<el-input v-model="form.commission" placeholder="0.00">
<template slot="prepend"></template>
</el-input>
<el-input v-model="form.commission" disabled />
</el-form-item>
<el-form-item label="状态">
@ -131,12 +142,12 @@
:active-value="1"
:inactive-value="0"
active-text="启用"
inactive-text="禁用"
/>
inactive-text="禁用">
</el-switch>
</el-form-item>
<el-form-item label="创建时间" v-if="form.createdAt">
<el-input v-model="createdAtDisplay" disabled />
<el-form-item label="创建时间" prop="createdAt">
<el-input v-model="form.createdAt" disabled />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -147,21 +158,29 @@
</template>
<script>
import { selectAreaList } from "@/api/system/WorkerApply"
import { datalist } from "@/api/system/DiyCity"
import { getSiteSkillList } from "@/api/system/SiteSkill"
import { listDiyCity } from "@/api/system/DiyCity"
export default {
name: "UserEditDialog",
props: {
visible: Boolean,
user: Object,
mode: String // 'add' or 'edit'
visible: {
type: Boolean,
default: false
},
user: {
type: Object,
default: () => ({})
},
mode: {
type: String,
default: 'add'
}
},
data() {
return {
form: {
id: undefined,
id: null,
name: undefined,
phone: undefined,
avatar: undefined,
@ -172,7 +191,7 @@ export default {
skillIds: undefined,
commission: undefined,
status: 1,
createdAt: undefined
createdAt: null
},
rules: {
name: [
@ -191,31 +210,29 @@ export default {
{ required: true, message: "技能不能为空", trigger: "change" }
]
},
selectAreaShenDataList: [],
selectAreaShiDataList: [],
//
cityList: [],
selectedCities: [],
cityNameCache: {},
//
areaList: [],
selectedAreas: [],
selectedSkills: [],
skillList: [],
//
areaNameCache: {},
//
//
skillList: [],
selectedSkills: [],
skillNameCache: {}
}
},
computed: {
createdAtDisplay() {
if (this.form.createdAt) {
return this.parseTime(this.form.createdAt, '{y}-{m}-{d} {h}:{i}:{s}')
}
return ''
}
},
watch: {
user: {
handler(val) {
if (val) {
console.log('UserEditDialog - 接收到用户数据:', val);
this.form = { ...val }
// status
if (typeof this.form.status === 'string') {
this.form.status = parseInt(this.form.status)
@ -226,32 +243,21 @@ export default {
this.form.prohibitTimeNum = parseInt(this.form.prohibitTimeNum) || 0
}
// ID
if (this.form.serviceCityPid) {
if (typeof this.form.serviceCityPid === 'string') {
this.form.serviceCityPid = this.form.serviceCityPid.split(',').map(Number).filter(n => !isNaN(n))
} else if (!Array.isArray(this.form.serviceCityPid)) {
this.form.serviceCityPid = [this.form.serviceCityPid]
}
} else {
this.form.serviceCityPid = []
}
// ID
this.processSelectedCities();
//
// ID
this.processSelectedAreas();
// ID
this.processSelectedSkills();
//
this.$nextTick(() => {
this.processSelectedAreas();
this.processSelectedSkills();
//
if (this.$refs["form"]) {
this.$refs["form"].clearValidate();
}
});
// ID
if (this.form.serviceCityPid) {
console.log('UserEditDialog - 用户数据加载完成加载城市数据省份ID:', this.form.serviceCityPid);
this.handleProvinceChange(); // handleProvinceChange
}
}
},
immediate: true
@ -259,49 +265,187 @@ export default {
visible(val) {
if (val) {
console.log('UserEditDialog - 弹窗打开,开始加载数据');
this.getShenDataList()
this.getSkillList()
//
this.$nextTick(() => {
// ID
if (this.form.serviceCityPid && this.form.serviceCityPid.length > 0) {
console.log('UserEditDialog - 加载城市数据省份ID:', this.form.serviceCityPid);
this.handleProvinceChange(); // handleProvinceChange
}
})
this.loadCityList();
this.loadSkillList();
}
},
selectedCities(val) {
this.form.serviceCityPid = val.join(',');
this.updateCityNameCache();
this.loadAreaList();
},
selectedAreas(val) {
this.form.serviceCityIds = val.join(',')
//
this.form.serviceCityIds = val.join(',');
this.updateAreaNameCache();
},
selectedSkills(val) {
this.form.skillIds = val.join(',')
//
this.form.skillIds = val.join(',');
this.updateSkillNameCache();
}
},
methods: {
//
forceUpdateDisplay() {
//
if (this.selectedAreas.length > 0) {
this.updateAreaNameCache();
//
loadCityList() {
console.log('UserEditDialog - 开始加载城市列表');
const queryParams = {
parentId: 0 //
}
//
if (this.selectedSkills.length > 0) {
this.updateSkillNameCache();
datalist(queryParams).then(response => {
console.log('UserEditDialog - 获取城市列表成功:', response);
if (response.code === 200) {
this.cityList = response.rows || [];
console.log('UserEditDialog - 城市列表:', this.cityList);
this.updateCityNameCache();
} else {
console.warn('UserEditDialog - 获取城市列表失败,使用默认数据');
this.cityList = [
{ id: 1, title: '陕西省' },
{ id: 27, title: '上海市' },
{ id: 44, title: '湖南省' },
{ id: 52, title: '安徽省' }
];
}
}).catch((error) => {
console.error('UserEditDialog - 获取城市列表异常:', error);
this.cityList = [
{ id: 1, title: '陕西省' },
{ id: 27, title: '上海市' },
{ id: 44, title: '湖南省' },
{ id: 52, title: '安徽省' }
];
});
},
//
loadAreaList() {
console.log('UserEditDialog - 开始加载地区列表,选中的城市:', this.selectedCities);
this.areaList = [];
this.areaNameCache = {};
if (this.selectedCities.length === 0) {
return;
}
//
this.selectedCities.forEach(cityId => {
const queryParams = {
parentId: cityId
}
datalist(queryParams).then(response => {
console.log(`UserEditDialog - 获取城市${cityId}的地区数据成功:`, response);
if (response.code === 200) {
const newAreas = response.rows || [];
//
newAreas.forEach(area => {
const exists = this.areaList.find(item => item.id === area.id);
if (!exists) {
this.areaList.push(area);
}
});
console.log('UserEditDialog - 合并后的地区列表:', this.areaList);
this.updateAreaNameCache();
}
}).catch((error) => {
console.error(`UserEditDialog - 获取城市${cityId}的地区数据失败:`, error);
// 使
let defaultAreas = [];
if (cityId === 1) {
defaultAreas = [
{ id: 2, title: '新城区' },
{ id: 5, title: '碑林区' },
{ id: 7, title: '莲湖区' },
{ id: 10, title: '灞桥区' },
{ id: 11, title: '未央区' },
{ id: 12, title: '雁塔区' },
{ id: 13, title: '阎良区' },
{ id: 14, title: '临潼区' },
{ id: 15, title: '长安区' },
{ id: 16, title: '高陵区' },
{ id: 17, title: '鄠邑区' }
];
} else if (cityId === 52) {
defaultAreas = [
{ id: 53, title: '瑶海区' },
{ id: 54, title: '庐阳区' },
{ id: 55, title: '蜀山区' },
{ id: 56, title: '包河区' },
{ id: 57, title: '经开区' },
{ id: 58, title: '高新区' }
];
}
defaultAreas.forEach(area => {
const exists = this.areaList.find(item => item.id === area.id);
if (!exists) {
this.areaList.push(area);
}
});
this.updateAreaNameCache();
});
});
},
//
loadSkillList() {
console.log('UserEditDialog - 开始加载技能列表');
getSiteSkillList().then(response => {
console.log('UserEditDialog - 获取技能列表成功:', response);
if (response.code === 200) {
this.skillList = response.data || [];
console.log('UserEditDialog - 技能列表:', this.skillList);
this.updateSkillNameCache();
} else {
console.warn('UserEditDialog - 获取技能列表失败,使用默认数据');
this.skillList = [
{ id: 1, title: '水电工' },
{ id: 2, title: '油工师傅' },
{ id: 3, title: '改造维修' },
{ id: 4, title: '工程施工' }
];
}
}).catch((error) => {
console.error('UserEditDialog - 获取技能列表异常:', error);
this.skillList = [
{ id: 1, title: '水电工' },
{ id: 2, title: '油工师傅' },
{ id: 3, title: '改造维修' },
{ id: 4, title: '工程施工' }
];
});
},
//
processSelectedCities() {
if (this.form.serviceCityPid) {
console.log('处理服务城市数据:', this.form.serviceCityPid, '类型:', typeof this.form.serviceCityPid);
try {
if (typeof this.form.serviceCityPid === 'string') {
if (this.form.serviceCityPid.startsWith('[') && this.form.serviceCityPid.endsWith(']')) {
this.selectedCities = JSON.parse(this.form.serviceCityPid).map(Number).filter(n => !isNaN(n));
} else {
this.selectedCities = this.form.serviceCityPid.split(',').map(Number).filter(n => !isNaN(n));
}
} else if (Array.isArray(this.form.serviceCityPid)) {
this.selectedCities = this.form.serviceCityPid.map(Number).filter(n => !isNaN(n));
} else {
this.selectedCities = [];
}
console.log('解析后的服务城市:', this.selectedCities);
} catch (error) {
console.error('解析服务城市数据失败:', error);
this.selectedCities = [];
}
} else {
this.selectedCities = [];
}
},
//
processSelectedAreas() {
if (this.form.serviceCityIds) {
console.log('处理服务区域数据:', this.form.serviceCityIds, '类型:', typeof this.form.serviceCityIds);
console.log('处理服务区数据:', this.form.serviceCityIds, '类型:', typeof this.form.serviceCityIds);
try {
if (typeof this.form.serviceCityIds === 'string') {
// JSON
if (this.form.serviceCityIds.startsWith('[') && this.form.serviceCityIds.endsWith(']')) {
this.selectedAreas = JSON.parse(this.form.serviceCityIds).map(Number).filter(n => !isNaN(n));
} else {
@ -312,24 +456,9 @@ export default {
} else {
this.selectedAreas = [];
}
console.log('解析后的服务区域:', this.selectedAreas);
//
if (this.selectedAreas.length > 0 && this.selectAreaShiDataList.length === 0) {
console.log('UserEditDialog - 有已选择的地区但地区列表为空,等待数据加载');
//
setTimeout(() => {
this.processSelectedAreas();
}, 500);
return;
}
//
this.$nextTick(() => {
this.forceUpdateDisplay();
});
console.log('解析后的服务地区:', this.selectedAreas);
} catch (error) {
console.error('解析服务数据失败:', error);
console.error('解析服务地区数据失败:', error);
this.selectedAreas = [];
}
} else {
@ -343,7 +472,6 @@ export default {
console.log('处理技能数据:', this.form.skillIds, '类型:', typeof this.form.skillIds);
try {
if (typeof this.form.skillIds === 'string') {
// JSON
if (this.form.skillIds.startsWith('[') && this.form.skillIds.endsWith(']')) {
this.selectedSkills = JSON.parse(this.form.skillIds).map(Number).filter(n => !isNaN(n));
} else {
@ -355,10 +483,6 @@ export default {
this.selectedSkills = [];
}
console.log('解析后的技能:', this.selectedSkills);
//
this.$nextTick(() => {
this.forceUpdateDisplay();
});
} catch (error) {
console.error('解析技能数据失败:', error);
this.selectedSkills = [];
@ -368,57 +492,72 @@ export default {
}
},
//
updateCityNameCache() {
console.log('更新城市名称缓存,已选择城市:', this.selectedCities, '城市列表:', this.cityList);
this.cityNameCache = {};
this.selectedCities.forEach(cityId => {
const city = this.cityList.find(item => item.id === cityId);
if (city) {
this.cityNameCache[cityId] = city.title;
} else {
console.warn('未找到城市ID:', cityId, '对应的名称');
}
});
console.log('城市名称缓存:', this.cityNameCache);
},
//
updateAreaNameCache() {
console.log('UserEditDialog - 更新地区名称缓存,已选择地区:', this.selectedAreas, '地区列表:', this.selectAreaShiDataList);
console.log('更新地区名称缓存,已选择地区:', this.selectedAreas, '地区列表:', this.areaList);
this.areaNameCache = {};
this.selectedAreas.forEach(areaId => {
const area = this.selectAreaShiDataList.find(item => item.id === areaId);
const area = this.areaList.find(item => item.id === areaId);
if (area) {
this.areaNameCache[areaId] = area.title;
} else {
console.warn('UserEditDialog - 未找到地区ID:', areaId, '对应的名称');
console.warn('未找到地区ID:', areaId, '对应的名称');
}
});
console.log('UserEditDialog - 地区名称缓存:', this.areaNameCache);
console.log('地区名称缓存:', this.areaNameCache);
},
//
updateSkillNameCache() {
console.log('更新技能名称缓存,已选择技能:', this.selectedSkills, '技能列表:', this.skillList);
this.skillNameCache = {};
this.selectedSkills.forEach(skillId => {
if (!this.skillNameCache[skillId]) {
const skill = this.skillList.find(item => item.id == skillId);
if (skill) {
this.skillNameCache[skillId] = skill.title;
}
const skill = this.skillList.find(item => item.id === skillId);
if (skill) {
this.skillNameCache[skillId] = skill.title;
} else {
console.warn('未找到技能ID:', skillId, '对应的名称');
}
});
console.log('技能名称缓存:', this.skillNameCache);
},
//
getCityName(cityId) {
return this.cityNameCache[cityId] || this.cityList.find(item => item.id === cityId)?.title || cityId;
},
//
getAreaName(areaId) {
if (this.areaNameCache[areaId]) {
return this.areaNameCache[areaId];
}
const area = this.selectAreaShiDataList.find(item => item.id == areaId);
if (area) {
this.areaNameCache[areaId] = area.title;
return area.title;
}
return areaId;
return this.areaNameCache[areaId] || this.areaList.find(item => item.id === areaId)?.title || areaId;
},
//
getSkillName(skillId) {
if (this.skillNameCache[skillId]) {
return this.skillNameCache[skillId];
return this.skillNameCache[skillId] || this.skillList.find(item => item.id === skillId)?.title || skillId;
},
//
removeCity(cityId) {
const index = this.selectedCities.indexOf(cityId);
if (index > -1) {
this.selectedCities.splice(index, 1);
}
const skill = this.skillList.find(item => item.id == skillId);
if (skill) {
this.skillNameCache[skillId] = skill.title;
return skill.title;
}
return skillId;
},
//
@ -437,288 +576,39 @@ export default {
}
},
//
handleCityChange() {
console.log('城市选择变化:', this.selectedCities);
this.updateCityNameCache();
//
this.loadAreaList();
},
//
handleAreaChange() {
console.log('地区选择变化:', this.selectedAreas);
this.updateAreaNameCache();
},
//
handleSkillChange() {
console.log('技能选择变化:', this.selectedSkills);
this.updateSkillNameCache();
},
getShenDataList() {
console.log('UserEditDialog - 开始获取省份数据');
// 使DiyCityService
const queryParams = {
parentId: 0 // parent_id=0
}
listDiyCity(queryParams).then(response => {
console.log('UserEditDialog - 获取省份数据成功:', response);
if (response.code === 200) {
this.selectAreaShenDataList = response.rows || []
console.log('UserEditDialog - 省份列表:', this.selectAreaShenDataList);
} else {
console.warn('UserEditDialog - 获取省份数据失败,使用默认数据');
// 使
this.selectAreaShenDataList = [
{ id: 1, title: '陕西省' },
{ id: 27, title: '上海市' },
{ id: 44, title: '湖南省' },
{ id: 52, title: '安徽省' }
]
}
}).catch((error) => {
console.error('UserEditDialog - 获取省份数据异常:', error);
// 使
this.selectAreaShenDataList = [
{ id: 1, title: '陕西省' },
{ id: 27, title: '上海市' },
{ id: 44, title: '湖南省' },
{ id: 52, title: '安徽省' }
]
})
},
getShiDataList(id) {
console.log('UserEditDialog - 开始获取城市数据省份ID:', id);
// 使DiyCityService
const queryParams = {
parentId: id // parent_id
}
listDiyCity(queryParams).then(response => {
console.log('UserEditDialog - 获取城市数据成功:', response);
if (response.code === 200) {
const newAreas = response.rows || []
console.log('UserEditDialog - 城市列表:', newAreas);
//
newAreas.forEach(area => {
const exists = this.selectAreaShiDataList.find(item => item.id === area.id)
if (!exists) {
this.selectAreaShiDataList.push(area)
}
})
console.log('UserEditDialog - 合并后的地区列表:', this.selectAreaShiDataList);
//
this.updateAreaNameCache();
//
this.$nextTick(() => {
this.processSelectedAreas();
this.forceUpdateDisplay();
});
} else {
console.warn('UserEditDialog - 获取城市数据失败,使用默认数据');
// 使
let defaultAreas = []
if (id === 1) {
defaultAreas = [
{ id: 2, title: '新城区' },
{ id: 5, title: '碑林区' },
{ id: 7, title: '莲湖区' },
{ id: 10, title: '灞桥区' },
{ id: 11, title: '未央区' },
{ id: 12, title: '雁塔区' },
{ id: 13, title: '阎良区' },
{ id: 14, title: '临潼区' },
{ id: 15, title: '长安区' },
{ id: 16, title: '高陵区' },
{ id: 17, title: '鄠邑区' }
]
} else if (id === 52) {
defaultAreas = [
{ id: 53, title: '瑶海区' },
{ id: 54, title: '庐阳区' },
{ id: 55, title: '蜀山区' },
{ id: 56, title: '包河区' },
{ id: 57, title: '经开区' },
{ id: 58, title: '高新区' }
]
}
//
defaultAreas.forEach(area => {
const exists = this.selectAreaShiDataList.find(item => item.id === area.id)
if (!exists) {
this.selectAreaShiDataList.push(area)
}
})
console.log('UserEditDialog - 使用默认数据后的地区列表:', this.selectAreaShiDataList);
//
this.updateAreaNameCache();
//
this.$nextTick(() => {
this.processSelectedAreas();
this.forceUpdateDisplay();
});
}
}).catch((error) => {
console.error('UserEditDialog - 获取城市数据失败:', error);
// 使
let defaultAreas = []
if (id === 1) {
defaultAreas = [
{ id: 2, title: '新城区' },
{ id: 5, title: '碑林区' },
{ id: 7, title: '莲湖区' },
{ id: 10, title: '灞桥区' },
{ id: 11, title: '未央区' },
{ id: 12, title: '雁塔区' },
{ id: 13, title: '阎良区' },
{ id: 14, title: '临潼区' },
{ id: 15, title: '长安区' },
{ id: 16, title: '高陵区' },
{ id: 17, title: '鄠邑区' }
]
} else if (id === 52) {
defaultAreas = [
{ id: 53, title: '瑶海区' },
{ id: 54, title: '庐阳区' },
{ id: 55, title: '蜀山区' },
{ id: 56, title: '包河区' },
{ id: 57, title: '经开区' },
{ id: 58, title: '高新区' }
]
}
//
defaultAreas.forEach(area => {
const exists = this.selectAreaShiDataList.find(item => item.id === area.id)
if (!exists) {
this.selectAreaShiDataList.push(area)
}
})
console.log('UserEditDialog - 异常处理后的地区列表:', this.selectAreaShiDataList);
//
this.updateAreaNameCache();
//
this.$nextTick(() => {
this.processSelectedAreas();
this.forceUpdateDisplay();
});
})
},
getSkillList() {
console.log('UserEditDialog - 开始获取技能列表');
getSiteSkillList().then(response => {
console.log('UserEditDialog - 获取技能列表成功:', response);
if (response.code === 200) {
this.skillList = response.data || []
console.log('UserEditDialog - 技能列表:', this.skillList);
//
this.updateSkillNameCache();
//
this.$nextTick(() => {
this.processSelectedSkills();
this.forceUpdateDisplay();
});
} else {
console.warn('UserEditDialog - 获取技能列表失败,使用默认数据');
// 使
this.skillList = [
{ id: 1, title: '水电工' },
{ id: 2, title: '油工师傅' },
{ id: 3, title: '改造维修' },
{ id: 4, title: '工程施工' }
]
//
this.updateSkillNameCache();
//
this.$nextTick(() => {
this.processSelectedSkills();
this.forceUpdateDisplay();
});
}
}).catch((error) => {
console.error('UserEditDialog - 获取技能列表异常:', error);
// 使
this.skillList = [
{ id: 1, title: '水电工' },
{ id: 2, title: '油工师傅' },
{ id: 3, title: '改造维修' },
{ id: 4, title: '工程施工' }
]
//
this.updateSkillNameCache();
//
this.$nextTick(() => {
this.processSelectedSkills();
this.forceUpdateDisplay();
});
})
},
handleProvinceChange() {
console.log('UserEditDialog - 服务城市变化:', this.form.serviceCityPid);
//
this.selectedAreas = []
this.form.serviceCityIds = ''
this.areaNameCache = {} //
this.selectAreaShiDataList = [] //
//
if (this.form.serviceCityPid && this.form.serviceCityPid.length > 0) {
console.log('UserEditDialog - 开始加载多个城市的数据');
//
this.form.serviceCityPid.forEach(cityId => {
this.getShiDataList(cityId)
})
} else {
console.log('UserEditDialog - 没有选择服务城市');
this.selectAreaShiDataList = []
}
},
//
decreaseTime() {
if (this.form.prohibitTimeNum > 0) {
this.form.prohibitTimeNum--
this.form.prohibitTimeNum--;
}
},
//
increaseTime() {
this.form.prohibitTimeNum++
},
parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time.replace(new RegExp(/-/gm), '/')
}
if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
this.form.prohibitTimeNum++;
},
//
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
@ -727,9 +617,7 @@ export default {
...this.form,
type: '2', //
status: this.form.status || 0,
prohibitTimeNum: this.form.prohibitTimeNum || 0,
// ID
serviceCityPid: Array.isArray(this.form.serviceCityPid) ? this.form.serviceCityPid.join(',') : this.form.serviceCityPid
prohibitTimeNum: this.form.prohibitTimeNum || 0
}
this.$emit('confirm', submitData)
} else {
@ -737,13 +625,17 @@ export default {
}
})
},
//
resetForm() {
// id
const id = this.form.id
const createdAt = this.form.createdAt
this.$refs["form"].resetFields()
this.selectedCities = []
this.selectedAreas = []
this.selectedSkills = []
this.cityNameCache = {}
this.areaNameCache = {}
this.skillNameCache = {}
this.form = {
@ -777,58 +669,14 @@ export default {
align-items: center;
}
.time-input .el-input-number {
margin: 0 5px;
}
.time-input .el-button {
padding: 7px;
min-width: 32px;
}
.el-select {
width: 100%;
}
.area-selection,
.skill-selection {
width: 100%;
}
.selected-tags {
margin-top: 8px;
padding: 8px;
border: 1px solid #e4e7ed;
border-radius: 4px;
background-color: #fafafa;
min-height: 20px;
max-width: 100%;
overflow: hidden;
}
.selected-tags .el-tag {
margin: 2px;
}
::v-deep .el-input-number .el-input__inner {
text-align: center;
}
::v-deep .el-dialog__body {
padding: 20px 20px 0;
}
::v-deep .el-form-item {
margin-bottom: 18px;
}
::v-deep .el-input-group__prepend {
padding: 0 10px;
}
::v-deep .el-select .el-input__inner {
padding-right: 30px;
}
::v-deep .el-tag {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;