Commit f16e723bc75b73dccad544f505d8772552fd9006

Authored by xp.Huang
2 parents c05571a4 7415b393

Merge branch 'sqy_dev' into 'main'

'fix:将分析页代码与工作台互换'

See merge request huang/yun-teng-iot-front!16
Showing 20 changed files with 211 additions and 91 deletions
src/views/dashboard/analysis/components/DynamicInfo.vue renamed from src/views/dashboard/workbench/components/DynamicInfo.vue
src/views/dashboard/analysis/components/ProjectCard.vue renamed from src/views/dashboard/workbench/components/ProjectCard.vue
src/views/dashboard/analysis/components/QuickNav.vue renamed from src/views/dashboard/workbench/components/QuickNav.vue
src/views/dashboard/analysis/components/SaleRadar.vue renamed from src/views/dashboard/workbench/components/SaleRadar.vue
src/views/dashboard/analysis/components/WorkbenchHeader.vue renamed from src/views/dashboard/workbench/components/WorkbenchHeader.vue
src/views/dashboard/analysis/components/data.ts renamed from src/views/dashboard/workbench/components/data.ts
1 1 <template>
2   - <div class="p-4 md:flex">
3   - <div class="md:w-7/10 w-full !mr-4 enter-y">
4   - <GrowCard :loading="loading" class="enter-y" />
5   - <SiteAnalysis class="!my-4 enter-y" :loading="loading" />
6   - <div class="md:flex enter-y">
7   - <Card title="核心流程指南" style="width: 100%">
8   - <img alt="核心流程指南" src="../../../assets/images/flow.png" />
  2 + <PageWrapper>
  3 + <template #headerContent> <WorkbenchHeader /> </template>
  4 + <div class="lg:flex">
  5 + <div class="lg:w-7/10 w-full !mr-4 enter-y">
  6 + <ProjectCard :loading="loading" class="enter-y" />
  7 + <DynamicInfo :loading="loading" class="!my-4 enter-y" />
  8 + </div>
  9 + <div class="lg:w-3/10 w-full enter-y">
  10 + <QuickNav :loading="loading" class="enter-y" />
  11 +
  12 + <Card class="!my-4 enter-y" :loading="loading">
  13 + <img class="xl:h-50 h-30 mx-auto" src="../../../assets/svg/illustration.svg" />
9 14 </Card>
  15 +
  16 + <SaleRadar :loading="loading" class="enter-y" />
10 17 </div>
11 18 </div>
12   - <div class="md:w-3/10 w-full enter-y">
13   - <HelpDoc />
14   - </div>
15   - </div>
  19 + <BasicModal
  20 + @register="register"
  21 + v-bind="$attrs"
  22 + :mask="true"
  23 + :showCancelBtn="false"
  24 + :showOkBtn="false"
  25 + :canFullscreen="false"
  26 + :closable="false"
  27 + :maskStyle="maskColor"
  28 + :height="600"
  29 + :width="1500"
  30 + :maskClosable="false"
  31 + title="请修改密码"
  32 + :helpMessage="['请您修改密码']"
  33 + >
  34 + <PasswordDialog />
  35 + </BasicModal>
  36 + </PageWrapper>
16 37 </template>
17 38 <script lang="ts" setup>
18   - import { ref } from 'vue';
19   - import GrowCard from './components/GrowCard.vue';
20   - import SiteAnalysis from './components/SiteAnalysis.vue';
  39 + import PasswordDialog from '/@/views/system/password/index.vue';
  40 + import { BasicModal, useModal } from '/@/components/Modal';
  41 + import { getAuthCache } from '/@/utils/auth';
  42 + import { USER_INFO_KEY } from '/@/enums/cacheEnum';
  43 + import { ref, onMounted } from 'vue';
21 44 import { Card } from 'ant-design-vue';
22   - import HelpDoc from './components/HelpDoc.vue';
23   - const loading = ref(true);
  45 + import { PageWrapper } from '/@/components/Page';
  46 + import WorkbenchHeader from './components/WorkbenchHeader.vue';
  47 + import ProjectCard from './components/ProjectCard.vue';
  48 + import QuickNav from './components/QuickNav.vue';
  49 + import DynamicInfo from './components/DynamicInfo.vue';
  50 + import SaleRadar from './components/SaleRadar.vue';
  51 +
  52 + const maskColor = ref({ backgroundColor: 'grey' });
  53 + const statusModel = ref(false);
  54 + const [register, { openModal }] = useModal();
  55 + onMounted(() => {
  56 + const userInfo: object = getAuthCache(USER_INFO_KEY);
  57 + if (userInfo.needSetPwd == true) {
  58 + statusModel.value = true;
  59 + openModal(statusModel.value);
  60 + } else if (userInfo.needSetPwd == false) {
  61 + openModal(statusModel.value);
  62 + }
  63 + });
  64 + //Yunteng123456!!!
  65 + //Password123456!
  66 + //System123456!
  67 + //Testrole123456!
  68 + const loading = ref(false);
24 69 setTimeout(() => {
25 70 loading.value = false;
26 71 }, 1500);
... ...
src/views/dashboard/workbench/components/GrowCard.vue renamed from src/views/dashboard/analysis/components/GrowCard.vue
src/views/dashboard/workbench/components/HelpDoc.vue renamed from src/views/dashboard/analysis/components/HelpDoc.vue
src/views/dashboard/workbench/components/SiteAnalysis.vue renamed from src/views/dashboard/analysis/components/SiteAnalysis.vue
src/views/dashboard/workbench/components/VisitAnalysis.vue renamed from src/views/dashboard/analysis/components/VisitAnalysis.vue
src/views/dashboard/workbench/components/VisitAnalysisBar.vue renamed from src/views/dashboard/analysis/components/VisitAnalysisBar.vue
src/views/dashboard/workbench/components/props.ts renamed from src/views/dashboard/analysis/components/props.ts
src/views/dashboard/workbench/data.ts renamed from src/views/dashboard/analysis/data.ts
1 1 <template>
2   - <PageWrapper>
3   - <template #headerContent> <WorkbenchHeader /> </template>
4   - <div class="lg:flex">
5   - <div class="lg:w-7/10 w-full !mr-4 enter-y">
6   - <ProjectCard :loading="loading" class="enter-y" />
7   - <DynamicInfo :loading="loading" class="!my-4 enter-y" />
8   - </div>
9   - <div class="lg:w-3/10 w-full enter-y">
10   - <QuickNav :loading="loading" class="enter-y" />
11   -
12   - <Card class="!my-4 enter-y" :loading="loading">
13   - <img class="xl:h-50 h-30 mx-auto" src="../../../assets/svg/illustration.svg" />
  2 + <div class="p-4 md:flex">
  3 + <div class="md:w-7/10 w-full !mr-4 enter-y">
  4 + <GrowCard :loading="loading" class="enter-y" />
  5 + <SiteAnalysis class="!my-4 enter-y" :loading="loading" />
  6 + <div class="md:flex enter-y">
  7 + <Card title="核心流程指南" style="width: 100%">
  8 + <img alt="核心流程指南" src="../../../assets/images/flow.png" />
14 9 </Card>
15   -
16   - <SaleRadar :loading="loading" class="enter-y" />
17 10 </div>
18 11 </div>
19   - <BasicModal
20   - @register="register"
21   - v-bind="$attrs"
22   - :mask="true"
23   - :showCancelBtn="false"
24   - :showOkBtn="false"
25   - :canFullscreen="false"
26   - :closable="false"
27   - :maskStyle="maskColor"
28   - :height="600"
29   - :width="1500"
30   - :maskClosable="false"
31   - title="请修改密码"
32   - :helpMessage="['请您修改密码']"
33   - >
34   - <PasswordDialog />
35   - </BasicModal>
36   - </PageWrapper>
  12 + <div class="md:w-3/10 w-full enter-y">
  13 + <HelpDoc />
  14 + </div>
  15 + </div>
37 16 </template>
38 17 <script lang="ts" setup>
39   - import PasswordDialog from '/@/views/system/password/index.vue';
40   - import { BasicModal, useModal } from '/@/components/Modal';
41   - import { getAuthCache } from '/@/utils/auth';
42   - import { USER_INFO_KEY } from '/@/enums/cacheEnum';
43   - import { ref, onMounted } from 'vue';
  18 + import { ref } from 'vue';
  19 + import GrowCard from './components/GrowCard.vue';
  20 + import SiteAnalysis from './components/SiteAnalysis.vue';
44 21 import { Card } from 'ant-design-vue';
45   - import { PageWrapper } from '/@/components/Page';
46   - import WorkbenchHeader from './components/WorkbenchHeader.vue';
47   - import ProjectCard from './components/ProjectCard.vue';
48   - import QuickNav from './components/QuickNav.vue';
49   - import DynamicInfo from './components/DynamicInfo.vue';
50   - import SaleRadar from './components/SaleRadar.vue';
51   -
52   - const maskColor = ref({ backgroundColor: 'grey' });
53   - const statusModel = ref(false);
54   - const [register, { openModal }] = useModal();
55   - onMounted(() => {
56   - const userInfo: object = getAuthCache(USER_INFO_KEY);
57   - if (userInfo.needSetPwd == true) {
58   - statusModel.value = true;
59   - openModal(statusModel.value);
60   - } else if (userInfo.needSetPwd == false) {
61   - openModal(statusModel.value);
62   - }
63   - });
64   - //Yunteng123456!!!
65   - //Password123456!
66   - //System123456!
67   - //Testrole123456!
68   - const loading = ref(false);
  22 + import HelpDoc from './components/HelpDoc.vue';
  23 + const loading = ref(true);
69 24 setTimeout(() => {
70 25 loading.value = false;
71 26 }, 1500);
... ...
... ... @@ -140,7 +140,7 @@
140 140 }
141 141
142 142 function goLogin() {
143   - userStore.logout(true);
  143 + userStore.logout();
144 144 lockStore.resetLockInfo();
145 145 }
146 146
... ...
... ... @@ -44,7 +44,7 @@
44 44 </ARow>
45 45 <ARow class="enter-x">
46 46 <ACol :span="12">
47   - <FormItem> </FormItem>
  47 + <FormItem />
48 48 </ACol>
49 49 <ACol :span="12">
50 50 <FormItem :style="{ 'text-align': 'right' }">
... ...
... ... @@ -20,6 +20,7 @@
20 20 import { getEnterPriseDetail, updateEnterPriseDetail } from '/@/api/oem/index';
21 21 import { Loading } from '/@/components/Loading';
22 22 import { useMessage } from '/@/hooks/web/useMessage';
  23 + import { getTownChild } from '/@/api/oem/index';
23 24 export default defineComponent({
24 25 components: {
25 26 Card,
... ... @@ -32,7 +33,7 @@
32 33 loading: false,
33 34 tip: '拼命加载中...',
34 35 });
35   - const [registerForm, { getFieldsValue, setFieldsValue }] = useForm({
  36 + const [registerForm, { getFieldsValue, setFieldsValue, updateSchema }] = useForm({
36 37 labelWidth: 80,
37 38 schemas,
38 39 showResetButton: false,
... ... @@ -59,11 +60,128 @@
59 60 createMessage.error('更新信息失败');
60 61 }
61 62 };
  63 +
62 64 onMounted(async () => {
63 65 const res = await getEnterPriseDetail();
  66 + console.log(res);
  67 + updateCityData(res.codeProv, res.codeCity, res.codeCoun);
64 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 185 return {
68 186 registerForm,
69 187 compState,
... ...
... ... @@ -51,6 +51,7 @@ export const schemas: FormSchema[] = [
51 51 field: 'synopsis',
52 52 component: 'InputTextArea',
53 53 label: '公司简介',
  54 +
54 55 colProps: {
55 56 span: 24,
56 57 },
... ... @@ -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 123 updateSchema({
120 124 field: 'nameCity',
121 125 componentProps: () => {
... ... @@ -146,14 +150,20 @@ export const schemas: FormSchema[] = [
146 150 // 请选择区
147 151 options: nameCoun,
148 152 async onChange(value) {
149   - let nameTown = await getTownChild('codeCoun', value);
  153 + const nameTown = await getTownChild('codeCoun', value);
150 154 nameTown.forEach((item) => {
151 155 item.label = item.nameTown;
152 156 item.value = item.codeTown;
153 157 });
154 158 if (value === undefined) {
155 159 formModel.nameTown = undefined;
156   - nameTown = [];
  160 + updateSchema({
  161 + field: 'nameTown',
  162 + componentProps: {
  163 + placeholder: '请选择街道/城镇',
  164 + options: [],
  165 + },
  166 + });
157 167 }
158 168 updateSchema({
159 169 field: 'nameTown',
... ... @@ -177,7 +187,6 @@ export const schemas: FormSchema[] = [
177 187 field: 'nameCity',
178 188 component: 'Select',
179 189 label: '',
180   -
181 190 colProps: {
182 191 span: 5,
183 192 style: {
... ... @@ -213,13 +222,6 @@ export const schemas: FormSchema[] = [
213 222 placeholder: '请选择街道/城镇',
214 223 },
215 224 },
216   -
217   - // {
218   - // field: 'nameProv',
219   - // label: '所在城市',
220   - // component: 'Cascader',
221   - // },
222   -
223 225 {
224 226 field: 'address',
225 227 component: 'Input',
... ...
... ... @@ -23,7 +23,7 @@
23 23 import EnterpriseInfo from './components/EnterpriseInfo.vue';
24 24 import CVIDraw from './components/CVIDraw.vue';
25 25 import AppDraw from './components/AppDraw.vue';
26   - const activeKey = ref('APP定制');
  26 + const activeKey = ref('企业信息');
27 27 </script>
28 28
29 29 <style lang="less" scoped>
... ...