From 14f7d39b1885442de42bdd81806774151baddd4f Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期二, 22 七月 2025 15:37:03 +0800 Subject: [PATCH] 'ts报红部分解决' --- src/router/modules/remaining.ts | 2 .vscode/settings.json | 2 src/views/login/index.vue | 28 +- src/api/upload/index.ts | 13 - src/store/modules/user.ts | 6 src/api/register/index.ts | 25 +- src/api/user.ts | 27 +++ src/api/types.ts | 19 ++ src/views/home/component/myFooter.vue | 6 src/views/home/index.vue | 6 src/views/register/registernav.vue | 11 - src/views/item/component/editDialog.vue | 284 ++++++++++++++++++++++++---------- tsconfig.json | 2 src/views/register/index.vue | 11 src/api/mine.ts | 17 + src/api/login/index.ts | 9 16 files changed, 310 insertions(+), 158 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 388b96f..7b0ec58 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -40,4 +40,6 @@ "v-ripple" ], "vscodeCustomCodeColor.highlightValueColor": "#b392f0", + // "typescript.tsdk": "node_modules/typescript/lib", + "vetur.validation.script": false } \ No newline at end of file diff --git a/src/api/login/index.ts b/src/api/login/index.ts index b853982..aeeafbc 100644 --- a/src/api/login/index.ts +++ b/src/api/login/index.ts @@ -7,11 +7,10 @@ import { http } from "@/utils/http"; import { baseUrlApi } from "../util"; -type Result = { - success: boolean; - data: Array<any>; -}; +import type { Result } from "../types"; export const login = (data?: object) => { - return http.request("post", baseUrlApi("/api/auth/loginPhone"), { data }); + return http.request<Result>("post", baseUrlApi("/api/auth/loginPhone"), { + data + }); }; diff --git a/src/api/mine.ts b/src/api/mine.ts index 84ee178..f18be93 100644 --- a/src/api/mine.ts +++ b/src/api/mine.ts @@ -7,17 +7,22 @@ import { http } from "@/utils/http"; import { baseUrlApi } from "./util"; -type Result = { - success: boolean; - data: Array<any>; -}; +import type { Result } from "./types"; // 鑾峰彇涓汉涓績鏁版嵁 export const cusExtendInfo = (data?: object) => { - return http.request("post", baseUrlApi("/api/customer/cusExtendInfo"), { data }); + return http.request<Result>( + "post", + baseUrlApi("/api/customer/cusExtendInfo"), + { + data + } + ); }; // 淇敼涓汉涓績鏁版嵁 export const changeCusExtend = (data?: object) => { - return http.request("post", baseUrlApi("/api/customer/changeCusExtend"), { data }); + return http.request("post", baseUrlApi("/api/customer/changeCusExtend"), { + data + }); }; diff --git a/src/api/register/index.ts b/src/api/register/index.ts index 0c7e2a2..8e407e1 100644 --- a/src/api/register/index.ts +++ b/src/api/register/index.ts @@ -8,13 +8,10 @@ import { http } from "@/utils/http"; import { baseUrlApi } from "../util"; -type Result = { - success: boolean; - data: Array<any>; -}; +import type { Result, CaptchaResult } from "../types"; export const register = (data?: object) => { - return http.request( + return http.request<Result>( "post", baseUrlApi("/api/customer/customerRegistration"), { data } @@ -22,7 +19,7 @@ }; export const captcha = () => { - return http.request<Result>("get", baseUrlApi("/api/zCSMS/captcha")); + return http.request<CaptchaResult>("get", baseUrlApi("/api/zCSMS/captcha")); }; //鑾峰彇瑙掕壊 @@ -31,8 +28,8 @@ }; // 鑾峰彇鎵嬫満楠岃瘉鐮� -export const phoneNumberCode = (params?: object) => { - return http.request( +export const phoneNumberCode = params => { + return http.request<Result>( "post", baseUrlApi( `/api/zCSMS/sendSMS/${params.phone}/${params.code}/${params.codeId}` @@ -42,7 +39,7 @@ // 娉ㄥ唽瑙掕壊鐢ㄦ埛璧勬枡 export const createrExRolsInformation = (data?: object) => { - return http.request( + return http.request<Result>( "post", baseUrlApi("/api/customer/createrExRolsInformation"), { data } @@ -51,7 +48,11 @@ // 鑾峰彇浼佷笟绫诲瀷 export const enterpriseTypes = (data?: object) => { - return http.request("post", baseUrlApi("/api/customer/enterpriseTypes"), { - data - }); + return http.request<Result>( + "post", + baseUrlApi("/api/customer/enterpriseTypes"), + { + data + } + ); }; diff --git a/src/api/types.ts b/src/api/types.ts new file mode 100644 index 0000000..81776b8 --- /dev/null +++ b/src/api/types.ts @@ -0,0 +1,19 @@ +export type Result = { + success: boolean; + result: Array<any>; + code: string | number; + message: string; +}; + +type captchaImg = { + expirySeconds: number; + message: string; + img: string; + id: string; +}; + +export type CaptchaResult = { + success: boolean; + result: captchaImg; + code: string | number; +}; diff --git a/src/api/upload/index.ts b/src/api/upload/index.ts index 004e73c..de0fae2 100644 --- a/src/api/upload/index.ts +++ b/src/api/upload/index.ts @@ -2,25 +2,22 @@ * 锛堜笉寤鸿鍐欐垚 request.post(xxx)锛屽洜涓鸿繖鏍� post 鏃讹紝鏃犳硶 params 涓� data 鍚屾椂浼犲弬锛� * * 涓婁紶api鎺ュ彛闆嗗悎 - * @method register 娉ㄥ唽 - * @method captcha 鑾峰彇楠岃瘉鐮� */ import { http } from "@/utils/http"; import { baseUrlApi } from "../util"; -type Result = { - success: boolean; - data: Array<any>; -}; +import type { Result } from "../types"; //涓婁紶鍜岃瘑鍒惀涓氭墽鐓� export const upBizLicense = (data?: object) => { - return http.request("post", baseUrlApi("/api/upFile/upBizLicense"), { data }); + return http.request<Result>("post", baseUrlApi("/api/upFile/upBizLicense"), { + data + }); }; // 涓婁紶韬唤璇� export const uploadIdCord = (params?: object) => { - return http.request("post", baseUrlApi("/api/upFile/uploadIdCord"), { + return http.request<Result>("post", baseUrlApi("/api/upFile/uploadIdCord"), { params }); }; diff --git a/src/api/user.ts b/src/api/user.ts index d4c3352..638e201 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -23,6 +23,29 @@ }; }; +export type LoginResult = { + success: boolean; + code: string | number; + result: { + /** 澶村儚 */ + avatar: string; + /** 鐢ㄦ埛鍚� */ + username: string; + /** 鏄电О */ + nickname: string; + /** 褰撳墠鐧诲綍鐢ㄦ埛鐨勮鑹� */ + exRoles: Array<string>; + /** 鎸夐挳绾у埆鏉冮檺 */ + permissions: Array<string>; + /** `token` */ + accessToken: string; + /** 鐢ㄤ簬璋冪敤鍒锋柊`accessToken`鐨勬帴鍙f椂鎵�闇�鐨刞token` */ + refreshToken: string; + /** `accessToken`鐨勮繃鏈熸椂闂达紙鏍煎紡'xxxx/xx/xx xx:xx:xx'锛� */ + expires: Date; + }; +}; + export type RefreshTokenResult = { success: boolean; data: { @@ -37,7 +60,9 @@ /** 鐧诲綍 */ export const getLogin = (data?: object) => { - return http.request("post", baseUrlApi("/api/auth/loginPhone"), { data }); + return http.request<LoginResult>("post", baseUrlApi("/api/auth/loginPhone"), { + data + }); // return http.request<UserResult>("post", "/login", { data }); }; diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index db20f3d..c783e76 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -13,7 +13,7 @@ // }, { path: "/index", - name: "Main", + name: "MainPage", component: () => import("@/views/home/index.vue"), meta: { title: "棣栭〉", diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 3afc5e6..1912e18 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -8,7 +8,7 @@ storageLocal } from "../utils"; import { - type UserResult, + type LoginResult, type RefreshTokenResult, getLogin, refreshTokenApi @@ -65,11 +65,9 @@ }, /** 鐧诲叆 */ async loginByUsername(data) { - return new Promise<UserResult>((resolve, reject) => { + return new Promise<LoginResult>((resolve, reject) => { getLogin(data) .then(data => { - console.log(data, "杩欐槸浠�涔堬紵"); - if (data?.code == 200) setToken(data.result); resolve(data); }) diff --git a/src/views/home/component/myFooter.vue b/src/views/home/component/myFooter.vue index 4fce8dc..984ecba 100644 --- a/src/views/home/component/myFooter.vue +++ b/src/views/home/component/myFooter.vue @@ -43,7 +43,11 @@ </div> </template> -<script lang="ts"></script> +<script lang="ts" setup> +defineOptions({ + name: "MyFooter" +}); +</script> <style lang="scss" scoped> .myfooter { diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 0b2c4fa..db1493e 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -394,9 +394,9 @@ <script lang="ts" setup> import { onMounted, ref, computed, reactive } from "vue"; -import myFooter from "./component/myFooter.vue"; +import MyFooter from "./component/myFooter.vue"; import { useUserStoreHook } from "@/store/modules/user"; -import { exRole } from "@/api/register/index.ts"; +import { exRole } from "@/api/register/index"; import { storageLocal, isString, isIncludeAllChildren } from "@pureadmin/utils"; import { getToken } from "@/utils/auth"; @@ -409,7 +409,7 @@ // 璁块棶 state 灞炴�� // console.log(userStore.roles,'-'); // 鐩存帴鑾峰彇鍊� defineOptions({ - name: "Main" + name: "MainPage" }); let activeName = ref("first"); /** 瑙掕壊锛堝鏋滄樀绉颁负绌哄垯鏄剧ず鐢ㄦ埛鍚嶏級 */ diff --git a/src/views/item/component/editDialog.vue b/src/views/item/component/editDialog.vue index b54d199..ada8be4 100644 --- a/src/views/item/component/editDialog.vue +++ b/src/views/item/component/editDialog.vue @@ -1,41 +1,49 @@ 锘�<script lang="ts" name="procurementComplaint" setup> -import { ref, reactive, onMounted } from 'vue'; -import { ElMessage } from 'element-plus'; -import type { FormRules } from 'element-plus'; -import { formatDate } from '/@/utils/formatTime'; -import { useProcurementComplaintApi } from '/@/api/fb_p_complaints/procurementComplaint'; -import { log } from 'console'; +import { ref, reactive, onMounted } from "vue"; +import { ElMessage } from "element-plus"; +import type { FormRules } from "element-plus"; +import { formatDate } from "/@/utils/formatTime"; +import { useProcurementComplaintApi } from "/@/api/fb_p_complaints/procurementComplaint"; +import { log } from "console"; //鐖剁骇浼犻�掓潵鐨勫嚱鏁帮紝鐢ㄤ簬鍥炶皟 -const emit = defineEmits(['reloadTable']); +const emit = defineEmits(["reloadTable"]); const procurementComplaintApi = useProcurementComplaintApi(); const ruleFormRef = ref(); const state = reactive({ - title: '', - loading: false, - showDialog: false, - ruleForm: { - complaints: [{ itemDescription: '' }], - } as any, - stores: {}, - dropdownData: {} as any, + title: "", + loading: false, + showDialog: false, + ruleForm: { + complaints: [{ itemDescription: "" }] + } as any, + stores: {}, + dropdownData: {} as any }); const handlingStatus = [ - { value: 0, label: '鍏跺畠' }, - { value: 1, label: '鎴愮珛' }, - { value: 2, label: '椹冲洖' }, - { value: 3, label: '閮ㄥ垎鎴愮珛' }, + { value: 0, label: "鍏跺畠" }, + { value: 1, label: "鎴愮珛" }, + { value: 2, label: "椹冲洖" }, + { value: 3, label: "閮ㄥ垎鎴愮珛" } ]; // 鑷娣诲姞鍏朵粬瑙勫垯 const rules = ref<FormRules>({ - projectCode: [{ required: true, message: '璇烽�夋嫨椤圭洰缂栧彿锛�', trigger: 'blur' }], - projectName: [{ required: true, message: '璇烽�夋嫨椤圭洰鍚嶇О锛�', trigger: 'blur' }], - decisionDate: [{ required: true, message: '璇烽�夋嫨鍐冲畾鏃ユ湡锛�', trigger: 'change' }], - purchaser: [{ required: true, message: '璇烽�夋嫨閲囪喘浜猴紒', trigger: 'blur' }], - procurementAgency: [{ required: true, message: '璇烽�夋嫨閲囪喘浠g悊鏈烘瀯锛�', trigger: 'blur' }], + projectCode: [ + { required: true, message: "璇烽�夋嫨椤圭洰缂栧彿锛�", trigger: "blur" } + ], + projectName: [ + { required: true, message: "璇烽�夋嫨椤圭洰鍚嶇О锛�", trigger: "blur" } + ], + decisionDate: [ + { required: true, message: "璇烽�夋嫨鍐冲畾鏃ユ湡锛�", trigger: "change" } + ], + purchaser: [{ required: true, message: "璇烽�夋嫨閲囪喘浜猴紒", trigger: "blur" }], + procurementAgency: [ + { required: true, message: "璇烽�夋嫨閲囪喘浠g悊鏈烘瀯锛�", trigger: "blur" } + ] }); // 椤甸潰鍔犺浇鏃� @@ -43,41 +51,45 @@ // 鎵撳紑寮圭獥 const openDialog = async (row: any, title: string) => { - state.title = title; - row = row ?? { complaints: [{ itemDescription: '' }] }; - state.ruleForm = row.id ? await procurementComplaintApi.detail(row.id).then((res) => res.data.result) : JSON.parse(JSON.stringify(row)); - state.showDialog = true; - console.log(state.ruleForm.complaints, state.ruleForm.complaints.length); + state.title = title; + row = row ?? { complaints: [{ itemDescription: "" }] }; + state.ruleForm = row.id + ? await procurementComplaintApi.detail(row.id).then(res => res.data.result) + : JSON.parse(JSON.stringify(row)); + state.showDialog = true; + console.log(state.ruleForm.complaints, state.ruleForm.complaints.length); }; // 鍏抽棴寮圭獥 const closeDialog = () => { - emit('reloadTable'); - state.showDialog = false; + emit("reloadTable"); + state.showDialog = false; }; // 鎻愪氦 const submit = async () => { - ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => { - if (isValid) { - let values = state.ruleForm; - await procurementComplaintApi[state.ruleForm.id ? 'update' : 'add'](values); - closeDialog(); - } else { - ElMessage({ - message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜, - type: 'error', - }); - } - }); + ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => { + if (isValid) { + let values = state.ruleForm; + await procurementComplaintApi[state.ruleForm.id ? "update" : "add"]( + values + ); + closeDialog(); + } else { + ElMessage({ + message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜, + type: "error" + }); + } + }); }; -const changeComplaints = (index:any,txt: String) => { - if (txt == 'add') { - state.ruleForm.complaints.splice(index+1, 0, { itemDescription: '' }) - } else { - state.ruleForm.complaints.splice(index, 1) - } +const changeComplaints = (index: any, txt: String) => { + if (txt == "add") { + state.ruleForm.complaints.splice(index + 1, 0, { itemDescription: "" }); + } else { + state.ruleForm.complaints.splice(index, 1); + } }; //灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠� @@ -85,101 +97,203 @@ </script> <template> <div class="procurementComplaint-container"> - <el-dialog v-model="state.showDialog" :width="900" draggable :close-on-click-modal="false"> + <el-dialog + v-model="state.showDialog" + :width="900" + draggable + :close-on-click-modal="false" + > <template #header> <div style="color: #fff"> <span>{{ state.title }}</span> </div> </template> - <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules"> + <el-form + ref="ruleFormRef" + :model="state.ruleForm" + label-width="auto" + :rules="rules" + > <el-row :gutter="35"> <el-form-item v-show="false"> <el-input v-model="state.ruleForm.id" /> </el-form-item> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="鍐冲畾鏃ユ湡" prop="decisionDate"> - <el-date-picker v-model="state.ruleForm.decisionDate" type="date" placeholder="璇烽�夋嫨鍐冲畾鏃ユ湡" /> + <el-date-picker + v-model="state.ruleForm.decisionDate" + type="date" + placeholder="璇烽�夋嫨鍐冲畾鏃ユ湡" + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="椤圭洰鍚嶇О" prop="projectName"> - <el-input v-model="state.ruleForm.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" maxlength="200" show-word-limit - clearable /> + <el-input + v-model="state.ruleForm.projectName" + placeholder="璇疯緭鍏ラ」鐩悕绉�" + maxlength="200" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="椤圭洰缂栧彿" prop="projectCode"> - <el-input v-model="state.ruleForm.projectCode" placeholder="璇疯緭鍏ラ」鐩紪鍙�" maxlength="50" show-word-limit - clearable /> + <el-input + v-model="state.ruleForm.projectCode" + placeholder="璇疯緭鍏ラ」鐩紪鍙�" + maxlength="50" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="閲囪喘浜�" prop="purchaser"> - <el-input v-model="state.ruleForm.purchaser" placeholder="璇疯緭鍏ラ噰璐汉" maxlength="100" show-word-limit - clearable /> + <el-input + v-model="state.ruleForm.purchaser" + placeholder="璇疯緭鍏ラ噰璐汉" + maxlength="100" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="閲囪喘浠g悊鏈烘瀯" prop="procurementAgency"> - <el-input v-model="state.ruleForm.procurementAgency" placeholder="璇疯緭鍏ラ噰璐唬鐞嗘満鏋�" maxlength="100" - show-word-limit clearable /> + <el-input + v-model="state.ruleForm.procurementAgency" + placeholder="璇疯緭鍏ラ噰璐唬鐞嗘満鏋�" + maxlength="100" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="閲囪喘鐩戠潱閮ㄩ棬" prop="procurementSupervisionDepartment"> - <el-input v-model="state.ruleForm.procurementSupervisionDepartment" placeholder="璇疯緭鍏ラ噰璐洃鐫i儴闂�" - maxlength="100" show-word-limit clearable /> + <el-form-item + label="閲囪喘鐩戠潱閮ㄩ棬" + prop="procurementSupervisionDepartment" + > + <el-input + v-model="state.ruleForm.procurementSupervisionDepartment" + placeholder="璇疯緭鍏ラ噰璐洃鐫i儴闂�" + maxlength="100" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="鎶曡瘔浜�" prop="complainant"> - <el-input v-model="state.ruleForm.complainant" placeholder="璇疯緭鍏ユ姇璇変汉" maxlength="100" show-word-limit - clearable /> + <el-input + v-model="state.ruleForm.complainant" + placeholder="璇疯緭鍏ユ姇璇変汉" + maxlength="100" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="绾夸笂鍦板潃" prop="url"> - <el-input v-model="state.ruleForm.url" placeholder="璇疯緭鍏ョ嚎涓婂湴鍧�" maxlength="255" show-word-limit clearable /> + <el-input + v-model="state.ruleForm.url" + placeholder="璇疯緭鍏ョ嚎涓婂湴鍧�" + maxlength="255" + show-word-limit + clearable + /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> - <template v-for="(item,index) in state.ruleForm.complaints" :key="index"> + <template + v-for="(item, index) in state.ruleForm.complaints" + :key="index" + > <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item :label="`鎶曡瘔浜嬮」${index==0?'':index}`" prop="complaints"> - <el-input v-model="item.itemDescription" type="textarea" :placeholder="`璇疯緭鍏ユ姇璇変簨椤�${index==0?'':index}`" - maxlength="1000" show-word-limit clearable /> + <el-form-item + :label="`鎶曡瘔浜嬮」${index == 0 ? '' : index}`" + prop="complaints" + > + <el-input + v-model="item.itemDescription" + type="textarea" + :placeholder="`璇疯緭鍏ユ姇璇変簨椤�${index == 0 ? '' : index}`" + maxlength="1000" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class=""> - <el-form-item :label="`澶勭悊鎻忚堪${index==0?'':index}`" prop="complaints"> - <el-input v-model="item.handlingResult" type="textarea" :placeholder="`璇疯緭鍏ュ鐞嗘弿杩�${index==0?'':index}`" - maxlength="1000" show-word-limit clearable /> + <el-form-item + :label="`澶勭悊鎻忚堪${index == 0 ? '' : index}`" + prop="complaints" + > + <el-input + v-model="item.handlingResult" + type="textarea" + :placeholder="`璇疯緭鍏ュ鐞嗘弿杩�${index == 0 ? '' : index}`" + maxlength="1000" + show-word-limit + clearable + /> </el-form-item> </el-col> <el-col :xs="6" :sm="6" :md="6" :lg="6" :xl="6" class="mb20"> - <el-form-item :label="`鎶曡瘔鐘舵��${index==0?'':index}`" prop="complaints"> + <el-form-item + :label="`鎶曡瘔鐘舵��${index == 0 ? '' : index}`" + prop="complaints" + > <el-select v-model="item.handlingStatus"> - <el-option v-for="item in handlingStatus" :key="item.value" :label="item.label" :value="item.value" /> + <el-option + v-for="item in handlingStatus" + :key="item.value" + :label="item.label" + :value="item.value" + /> </el-select> </el-form-item> </el-col> <el-col :xs="1" :sm="1" :md="1" :lg="1" :xl="1" class="mb20"> - <el-button type="primary" @click="changeComplaints(index,'add')">+</el-button> + <el-button type="primary" @click="changeComplaints(index, 'add')" + >+</el-button + > </el-col> - <el-col :xs="1" :sm="1" :md="1" :lg="1" :xl="1" class="mb20" - v-if="state.ruleForm.complaints&&state.ruleForm.complaints.length>1"> - <el-button type="primary" @click="changeComplaints(index)">-</el-button> + <el-col + v-if=" + state.ruleForm.complaints && + state.ruleForm.complaints.length > 1 + " + :xs="1" + :sm="1" + :md="1" + :lg="1" + :xl="1" + class="mb20" + > + <el-button type="primary" @click="changeComplaints(index)" + >-</el-button + > </el-col> - <el-divider v-if="state.ruleForm.complaints&&state.ruleForm.complaints.length>1" /> + <el-divider + v-if=" + state.ruleForm.complaints && + state.ruleForm.complaints.length > 1 + " + /> </template> - </el-row> </el-form> <template #footer> <span class="dialog-footer"> - <el-button @click="() => state.showDialog = false">鍙� 娑�</el-button> - <el-button @click="submit" type="primary" v-reclick="1000">纭� 瀹�</el-button> + <el-button @click="() => (state.showDialog = false)">鍙� 娑�</el-button> + <el-button v-reclick="1000" type="primary" @click="submit" + >纭� 瀹�</el-button + > </span> </template> </el-dialog> @@ -188,6 +302,6 @@ <style lang="scss" scoped> :deep(.el-select), :deep(.el-input-number) { - width: 100%; + width: 100%; } -</style> \ No newline at end of file +</style> diff --git a/src/views/login/index.vue b/src/views/login/index.vue index aebcc27..6fdd381 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -30,7 +30,7 @@ // import darkIcon from "@/assets/svg/dark.svg?component"; import Lock from "~icons/ri/lock-fill"; import User from "~icons/ri/user-3-fill"; -import { captcha, phoneNumberCode, exRole } from "@/api/register/index.ts"; +import { captcha, phoneNumberCode, exRole } from "@/api/register/index"; defineOptions({ name: "Login" @@ -50,11 +50,8 @@ // 鑾峰彇楠岃瘉鐮� const getCaptcha = async () => { // if (!state.captchaEnabled) return; - state.ruleForm.code = ""; const res = await captcha(); - console.log(res); - state.captchaImage = "data:text/html;base64," + res.result?.img; state.expirySeconds = res.result?.expirySeconds; state.ruleForm.codeId = res.result?.id; @@ -66,9 +63,8 @@ nickName: "", phone: "", phoneVCode: "", - // tenantId: props.tenantInfo.id, code: "", - codeId: 0, + codeId: "", email: "", exRoleCode: "" }, @@ -133,6 +129,7 @@ // 鑾峰彇楠岃瘉鐮� getCaptcha(); + exRole().then(res => { state.roleList = res.result; const role = route.query; @@ -141,7 +138,7 @@ } else { state.nowRole = state.roleList[0]; } - state.ruleForm.exRoleCode = state.nowRole?.code; + state.ruleForm.exRoleCode = state.nowRole.code; }); // 娉ㄥ唽楠岃瘉鐮佽繃鏈熻鏃跺櫒 // if (state.captchaEnabled) { @@ -167,24 +164,25 @@ if (!formEl) return; await formEl.validate(valid => { if (valid) { + let obj = { + phone: state.ruleForm.phone, + code: state.ruleForm.phoneVCode, + exRuleCode: state.ruleForm.exRoleCode + }; loading.value = true; useUserStoreHook() - .loginByUsername({ - phone: state.ruleForm.phone, - code: state.ruleForm.phoneVCode, - exRuleCode: state.ruleForm.exRoleCode - }) + .loginByUsername(obj) .then(res => { if (res.code == 200) { // 鑾峰彇鍚庣璺敱 return initRouter().then(() => { - console.log(res, "=-=-=-="); - if (!res.result.exRoles.hasFlsh) { + console.log(res, "=-=-=-=", res.result.exRoles[0].hasFlsh); + if (!res.result.exRoles[0].hasFlsh) { disabled.value = true; router .replace({ name: "RegisterNav", - query: { code: res?.result?.exRoles.code } + query: { code: res.result.exRoles[0].code } }) .then(() => { message("鐧诲綍鎴愬姛", { type: "success" }); diff --git a/src/views/register/index.vue b/src/views/register/index.vue index 7de31f3..e904c46 100644 --- a/src/views/register/index.vue +++ b/src/views/register/index.vue @@ -121,7 +121,7 @@ <span id="suffix-span-2" ref="spanRef" - @click="sendValidationCode(state.ruleForm.phone)" + @click="sendValidationCode" > 鑾峰彇楠岃瘉鐮� </span> @@ -172,7 +172,7 @@ phoneNumberCode, register, exRole -} from "@/api/register/index.ts"; +} from "@/api/register/index"; import { useRoute, useRouter } from "vue-router"; import { message } from "@/utils/message"; defineOptions({ @@ -191,7 +191,7 @@ phoneVCode: "", // tenantId: props.tenantInfo.id, code: "", - codeId: 0, + codeId: "", email: "", exRoleCode: "" }, @@ -300,11 +300,8 @@ // 鑾峰彇楠岃瘉鐮� const getCaptcha = async () => { // if (!state.captchaEnabled) return; - state.ruleForm.code = ""; const res = await captcha(); - console.log(res); - state.captchaImage = "data:text/html;base64," + res.result?.img; state.expirySeconds = res.result?.expirySeconds; state.ruleForm.codeId = res.result?.id; @@ -316,7 +313,7 @@ const spanRef = ref(); const submitForm = async (formEl: FormInstance | undefined) => { if (!formEl) return; - await formEl.validate((valid, fields) => { + await formEl.validate(valid => { if (valid) { state.ruleForm.account = state.ruleForm.phone; register(state.ruleForm).then(res => { diff --git a/src/views/register/registernav.vue b/src/views/register/registernav.vue index 917e7df..71e7ddf 100644 --- a/src/views/register/registernav.vue +++ b/src/views/register/registernav.vue @@ -412,7 +412,7 @@ import { enterpriseTypes, createrExRolsInformation -} from "@/api/register/index.ts"; +} from "@/api/register/index"; import { cloneDeep } from "@pureadmin/utils"; import { getToken } from "@/utils/auth"; import { useRoute, useRouter } from "vue-router"; @@ -485,13 +485,6 @@ enterpriseType: [ { required: true, message: "璇烽�夋嫨浼佷笟绫诲瀷", trigger: "change" } ], - // transactionCode: [ - // { required: true, message: "璇疯緭鍏ヤ氦鏄撲富浣撲唬鐮�", trigger: "blur" }, - // { min: 1, message: "浜ゆ槗涓讳綋浠g爜鏈�灏忛暱搴︿负1", trigger: "blur" } - // ], - // transactionName: [ - // { required: true, message: "璇疯緭鍏ヤ氦鏄撲富浣撳悕绉�", trigger: "blur" } - // ], businessLicense: [ { required: true, message: "璇蜂笂浼犺惀涓氭墽鐓�", trigger: "change" } ], @@ -604,7 +597,7 @@ } else { state.ruleForm.transactionCode = route.query.code; } - // 浼佷笟绫诲瀷 + let res = await enterpriseTypes(); state.enterpriseList = res?.result; }); diff --git a/tsconfig.json b/tsconfig.json index 4cbdd39..833a13f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "ESNext", "module": "ESNext", - "moduleResolution": "bundler", + "moduleResolution": "node", "strict": false, "strictFunctionTypes": false, "noImplicitThis": true, -- Gitblit v1.9.1