Commit 7415b3931f34b75b76fdcac6780c5eac663bcf7d

Authored by sqy
1 parent 737a6932

'fix:修复OEM页面的位置选择回显问题'

@@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
20 import { getEnterPriseDetail, updateEnterPriseDetail } from '/@/api/oem/index'; 20 import { getEnterPriseDetail, updateEnterPriseDetail } from '/@/api/oem/index';
21 import { Loading } from '/@/components/Loading'; 21 import { Loading } from '/@/components/Loading';
22 import { useMessage } from '/@/hooks/web/useMessage'; 22 import { useMessage } from '/@/hooks/web/useMessage';
  23 + import { getTownChild } from '/@/api/oem/index';
23 export default defineComponent({ 24 export default defineComponent({
24 components: { 25 components: {
25 Card, 26 Card,
@@ -32,7 +33,7 @@ @@ -32,7 +33,7 @@
32 loading: false, 33 loading: false,
33 tip: '拼命加载中...', 34 tip: '拼命加载中...',
34 }); 35 });
35 - const [registerForm, { getFieldsValue, setFieldsValue }] = useForm({ 36 + const [registerForm, { getFieldsValue, setFieldsValue, updateSchema }] = useForm({
36 labelWidth: 80, 37 labelWidth: 80,
37 schemas, 38 schemas,
38 showResetButton: false, 39 showResetButton: false,
@@ -59,11 +60,128 @@ @@ -59,11 +60,128 @@
59 createMessage.error('更新信息失败'); 60 createMessage.error('更新信息失败');
60 } 61 }
61 }; 62 };
  63 +
62 onMounted(async () => { 64 onMounted(async () => {
63 const res = await getEnterPriseDetail(); 65 const res = await getEnterPriseDetail();
  66 + console.log(res);
  67 + updateCityData(res.codeProv, res.codeCity, res.codeCoun);
64 setFieldsValue(res); 68 setFieldsValue(res);
65 }); 69 });
66 70
  71 + async function updateCityData(codeProv: string, codeCity: string, codeCoun: string) {
  72 + const nameCity = await getTownChild('codeProv', codeProv);
  73 + const nameCoun = await getTownChild('codeCity', codeCity);
  74 + const nameTown = await getTownChild('codeCoun', codeCoun);
  75 + nameCity.forEach((item) => {
  76 + item.label = item.nameCity;
  77 + item.value = item.codeCity;
  78 + });
  79 + nameCoun.forEach((item) => {
  80 + item.label = item.nameCoun;
  81 + item.value = item.codeCoun;
  82 + });
  83 + nameTown.forEach((item) => {
  84 + item.label = item.nameTown;
  85 + item.value = item.codeTown;
  86 + });
  87 + updateSchema({
  88 + field: 'nameTown',
  89 + componentProps: {
  90 + options: nameTown,
  91 + },
  92 + });
  93 + updateSchema({
  94 + field: 'nameCoun',
  95 + componentProps: {
  96 + options: nameCoun,
  97 + async onChange(value) {
  98 + if (value === undefined) {
  99 + setFieldsValue({
  100 + nameTown: undefined,
  101 + });
  102 + updateSchema({
  103 + field: 'nameTown',
  104 + componentProps: {
  105 + options: [],
  106 + },
  107 + });
  108 + }
  109 + let nameTown = await getTownChild('codeCoun', value);
  110 + console.log(111);
  111 + nameTown.forEach((item) => {
  112 + item.label = item.nameTown;
  113 + item.value = item.codeTown;
  114 + });
  115 + setFieldsValue({
  116 + nameTown: undefined,
  117 + });
  118 + updateSchema({
  119 + field: 'nameTown',
  120 + componentProps: {
  121 + placeholder: '请选择街道/城镇',
  122 + options: nameTown,
  123 + },
  124 + });
  125 + },
  126 + },
  127 + });
  128 + updateSchema({
  129 + field: 'nameCity',
  130 + componentProps: ({ formModel }) => {
  131 + return {
  132 + options: nameCity,
  133 + onChange: async (value) => {
  134 + let nameCoun = await getTownChild('codeCity', value);
  135 + if (value === undefined) {
  136 + formModel.nameCoun = undefined; // reset city value
  137 + formModel.nameTown = undefined;
  138 + nameCoun = [];
  139 + updateSchema({
  140 + field: 'nameTown',
  141 + componentProps: {
  142 + options: [],
  143 + },
  144 + });
  145 + }
  146 + nameCoun.forEach((item) => {
  147 + item.label = item.nameCoun;
  148 + item.value = item.codeCoun;
  149 + });
  150 + formModel.nameCoun = undefined; // reset city value
  151 + formModel.nameTown = undefined;
  152 + updateSchema({
  153 + field: 'nameCoun',
  154 + componentProps: {
  155 + // 请选择区
  156 + options: nameCoun,
  157 + async onChange(value) {
  158 + let nameTown = await getTownChild('codeCoun', value);
  159 + if (value === undefined) {
  160 + formModel.nameTown = undefined;
  161 + nameTown = [];
  162 + }
  163 + nameTown.forEach((item) => {
  164 + item.label = item.nameTown;
  165 + item.value = item.codeTown;
  166 + });
  167 +
  168 + formModel.nameTown = undefined;
  169 + updateSchema({
  170 + field: 'nameTown',
  171 + componentProps: {
  172 + placeholder: '请选择街道/城镇',
  173 + options: nameTown,
  174 + },
  175 + });
  176 + },
  177 + },
  178 + });
  179 + },
  180 + };
  181 + },
  182 + });
  183 + }
  184 +
67 return { 185 return {
68 registerForm, 186 registerForm,
69 compState, 187 compState,
@@ -51,6 +51,7 @@ export const schemas: FormSchema[] = [ @@ -51,6 +51,7 @@ export const schemas: FormSchema[] = [
51 field: 'synopsis', 51 field: 'synopsis',
52 component: 'InputTextArea', 52 component: 'InputTextArea',
53 label: '公司简介', 53 label: '公司简介',
  54 +
54 colProps: { 55 colProps: {
55 span: 24, 56 span: 24,
56 }, 57 },
@@ -116,6 +117,9 @@ export const schemas: FormSchema[] = [ @@ -116,6 +117,9 @@ export const schemas: FormSchema[] = [
116 }, 117 },
117 }); 118 });
118 } 119 }
  120 + formModel.nameCity = undefined; // reset city value
  121 + formModel.nameCoun = undefined;
  122 + formModel.nameTown = undefined;
119 updateSchema({ 123 updateSchema({
120 field: 'nameCity', 124 field: 'nameCity',
121 componentProps: () => { 125 componentProps: () => {
@@ -146,14 +150,20 @@ export const schemas: FormSchema[] = [ @@ -146,14 +150,20 @@ export const schemas: FormSchema[] = [
146 // 请选择区 150 // 请选择区
147 options: nameCoun, 151 options: nameCoun,
148 async onChange(value) { 152 async onChange(value) {
149 - let nameTown = await getTownChild('codeCoun', value); 153 + const nameTown = await getTownChild('codeCoun', value);
150 nameTown.forEach((item) => { 154 nameTown.forEach((item) => {
151 item.label = item.nameTown; 155 item.label = item.nameTown;
152 item.value = item.codeTown; 156 item.value = item.codeTown;
153 }); 157 });
154 if (value === undefined) { 158 if (value === undefined) {
155 formModel.nameTown = undefined; 159 formModel.nameTown = undefined;
156 - nameTown = []; 160 + updateSchema({
  161 + field: 'nameTown',
  162 + componentProps: {
  163 + placeholder: '请选择街道/城镇',
  164 + options: [],
  165 + },
  166 + });
157 } 167 }
158 updateSchema({ 168 updateSchema({
159 field: 'nameTown', 169 field: 'nameTown',
@@ -177,7 +187,6 @@ export const schemas: FormSchema[] = [ @@ -177,7 +187,6 @@ export const schemas: FormSchema[] = [
177 field: 'nameCity', 187 field: 'nameCity',
178 component: 'Select', 188 component: 'Select',
179 label: '', 189 label: '',
180 -  
181 colProps: { 190 colProps: {
182 span: 5, 191 span: 5,
183 style: { 192 style: {
@@ -213,13 +222,6 @@ export const schemas: FormSchema[] = [ @@ -213,13 +222,6 @@ export const schemas: FormSchema[] = [
213 placeholder: '请选择街道/城镇', 222 placeholder: '请选择街道/城镇',
214 }, 223 },
215 }, 224 },
216 -  
217 - // {  
218 - // field: 'nameProv',  
219 - // label: '所在城市',  
220 - // component: 'Cascader',  
221 - // },  
222 -  
223 { 225 {
224 field: 'address', 226 field: 'address',
225 component: 'Input', 227 component: 'Input',
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 import EnterpriseInfo from './components/EnterpriseInfo.vue'; 23 import EnterpriseInfo from './components/EnterpriseInfo.vue';
24 import CVIDraw from './components/CVIDraw.vue'; 24 import CVIDraw from './components/CVIDraw.vue';
25 import AppDraw from './components/AppDraw.vue'; 25 import AppDraw from './components/AppDraw.vue';
26 - const activeKey = ref('APP定制'); 26 + const activeKey = ref('企业信息');
27 </script> 27 </script>
28 28
29 <style lang="less" scoped> 29 <style lang="less" scoped>