Bladeren bron

Merge branch 'fanghuisheng' of http://47.111.81.118:3000/uskycloud/usky-web-mobile into fanghuisheng

ming 2 jaren geleden
bovenliggende
commit
c92b540235

+ 4 - 2
package.json

@@ -18,7 +18,8 @@
         "dev:quickapp-webview-union": "uni -p quickapp-webview-union",
         "build:app": "uni build -p app",
         "build:custom": "uni build -p",
-        "build:h5": "rimraf dist && uni build",
+        "build:h5:prod": "rimraf dist && uni build --mode production",
+        "build:h5:dev": "rimraf dist && uni build --mode development",
         "build:h5:ssr": "uni build --ssr",
         "build:mp-alipay": "uni build -p mp-alipay",
         "build:mp-baidu": "uni build -p mp-baidu",
@@ -30,7 +31,7 @@
         "build:quickapp-webview": "uni build -p quickapp-webview",
         "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
         "build:quickapp-webview-union": "uni build -p quickapp-webview-union",
-        "clear": "rimraf node_modules&&cnpm install"
+        "clear": "rimraf node_modules && cnpm install"
     },
     "dependencies": {
         "@amap/amap-jsapi-loader": "^1.0.1",
@@ -66,6 +67,7 @@
         "@dcloudio/uni-stacktracey": "3.0.0-alpha-3050320220729001",
         "@dcloudio/vite-plugin-uni": "3.0.0-alpha-3050320220729001",
         "@vitejs/plugin-vue": "^2.3.3",
+        "cross-env": "^7.0.3",
         "sass": "^1.54.3",
         "vite": "^2.9.14"
     }

+ 25 - 0
src/api/business/mhxf/unitInfoCollection/index.js

@@ -0,0 +1,25 @@
+import upload from "@/utils/upload";
+import request from "@/utils/request";
+
+/**
+ * @单位信息采集
+ * @名称模糊查询
+ */
+export function companyByNameSelect(param) {
+  return request({
+    url: "/service-fire/baseCompany/companyByNameSelect",
+    method: "GET",
+    data: param,
+  });
+}
+
+/**
+ * @单位信息采集新增
+ */
+export function addBaseCompany(param) {
+  return request({
+    url: "/service-fire/baseCompany/addBaseCompany",
+    method: "POST",
+    data: param,
+  });
+}

+ 342 - 165
src/pages/business/mhxf/unitInfoCollection/index.vue

@@ -10,52 +10,45 @@
       <view style="padding: 10px 0">
         <view class="" style="padding: 10px 10px 20px 10px; background: #ffffff">
           <u--form :model="form" ref="uForm" :rules="rules" labelWidth="130" style="padding-left: 9px">
-            <u-form-item label="单位名称" prop="name2" required :borderBottom="true">
-              <u-input v-model="form.name2" placeholder="请输入单位名称" border="none" />
+            <u-form-item label="单位名称" prop="companyName" required :borderBottom="true">
+              <u-input v-model="form.companyName" placeholder="请输入单位名称" border="none">
+                <template #suffix>
+                  <u-icon name="search" color="#999999" size="22" @click="companySubmit(form.companyName)"></u-icon>
+                </template>
+              </u-input>
             </u-form-item>
-            <u-form-item label="组织机构代码" prop="name1" required :borderBottom="true">
-              <u-input v-model="form.name1" placeholder="请输入组织机构代码" border="none" />
+            <u-form-item label="组织机构代码" prop="organization" required :borderBottom="true">
+              <u-input v-model="form.organization" placeholder="请输入组织机构代码" border="none" />
             </u-form-item>
-            <u-form-item label="法人代表" prop="name3" required :borderBottom="true">
-              <u-input v-model="form.name3" placeholder="请输入法人代表" border="none" />
+            <u-form-item label="法人代表" prop="delegateName" required :borderBottom="true">
+              <u-input v-model="form.delegateName" placeholder="请输入法人代表" border="none" />
             </u-form-item>
-            <u-form-item label="单位地址" prop="name4" required :borderBottom="true" @click="handleAction('单位地址')">
-              <u-input
-                v-model="form.name4"
-                placeholder="请选择单位地址"
-                border="none"
-                suffixIcon="arrow-right"
-                :suffixIconStyle="addDisabled ? 'color: #c0c4cc' : 'color: #909399'"
-                :color="addDisabled ? '#c0c4cc' : ''"
-                :disabled="addDisabled"
-              />
+            <u-form-item label="单位地址" prop="address" required :borderBottom="true">
+              <u-input v-model="form.address" placeholder="请输入单位地址" border="none" />
             </u-form-item>
-            <u-form-item label="详细地址" prop="name5" required :borderBottom="true">
-              <u-input v-model="form.name5" placeholder="请输入详细地址" border="none" />
+            <u-form-item label="消防管理人电话" prop="fireManagePhone" required :borderBottom="true">
+              <u-input v-model="form.fireManagePhone" placeholder="请输入消防管理人电话" border="none" />
             </u-form-item>
-            <u-form-item label="消防管理人电话" prop="name6" required :borderBottom="true">
-              <u-input v-model="form.name6" placeholder="请输入消防管理人电话" border="none" />
+            <u-form-item label="成立时间" prop="foundTime" required :borderBottom="true" @click="handleDateTime('成立时间')">
+              <u-input v-model="form.foundTime" placeholder="请选择成立时间" border="none" suffixIcon="calendar" suffixIconStyle="color: #909399;font-size:22px" />
             </u-form-item>
-            <u-form-item label="成立时间" prop="name7" required :borderBottom="true" @click="showTime = true">
-              <u-input v-model="form.name7" placeholder="请选择成立时间" border="none" suffixIcon="calendar" suffixIconStyle="color: #909399;font-size:22px" />
+            <u-form-item label="消防安全责任人" prop="fireDutyName" :borderBottom="true">
+              <u-input v-model="form.fireDutyName" placeholder="请输入消防安全责任人" border="none" />
             </u-form-item>
-            <u-form-item label="消防安全责任人" prop="name8" :borderBottom="true">
-              <u-input v-model="form.name8" placeholder="请输入消防安全责任人" border="none" />
+            <u-form-item label="消防安全管理人" prop="fireManageName" :borderBottom="true">
+              <u-input v-model="form.fireManageName" placeholder="请输入消防安全管理人" border="none" />
             </u-form-item>
-            <u-form-item label="消防安全管理人" prop="name9" :borderBottom="true">
-              <u-input v-model="form.name9" placeholder="请输入消防安全管理人" border="none" />
+            <u-form-item label="职工人数" prop="employeeNum" :borderBottom="true">
+              <u-input type="digit" v-model="form.employeeNum" placeholder="请输入职工人数" suffixIcon="人" suffixIconStyle="color:#999999;font-size:15px" border="none" />
             </u-form-item>
-            <u-form-item label="职工人数" prop="name10" :borderBottom="true">
-              <u-input type="digit" v-model="form.name10" placeholder="请输入职工人数" suffixIcon="人" suffixIconStyle="color:#999999;font-size:15px" border="none" />
+            <u-form-item label="固定资产(万元)" prop="fixedAssets" :borderBottom="true">
+              <u-input type="number" v-model="form.fixedAssets" placeholder="请输入固定资产(万元)" suffixIcon="万元" suffixIconStyle="color:#999999;font-size:15px" border="none" />
             </u-form-item>
-            <u-form-item label="固定资产(万元)" prop="name11" :borderBottom="true">
-              <u-input type="number" v-model="form.name11" placeholder="请输入固定资产(万元)" suffixIcon="万元" suffixIconStyle="color:#999999;font-size:15px" border="none" />
+            <u-form-item label="占地面积" prop="coverArea" :borderBottom="true">
+              <u-input type="number" v-model="form.coverArea" placeholder="请输入占地面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
             </u-form-item>
-            <u-form-item label="占地面积" prop="name12" :borderBottom="true">
-              <u-input type="number" v-model="form.name12" placeholder="请输入占地面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
-            </u-form-item>
-            <u-form-item label="总建筑面积" prop="name13" :borderBottom="true">
-              <u-input type="number" v-model="form.name13" placeholder="请输入总建筑面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
+            <u-form-item label="总建筑面积" prop="buildArea" :borderBottom="true">
+              <u-input type="number" v-model="form.buildArea" placeholder="请输入总建筑面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
             </u-form-item>
           </u--form>
 
@@ -71,47 +64,53 @@
     <view class="centerTwo" v-else>
       <view style="color: #333333; text-align: center; margin-top: 10px"> 所在建筑信息(2/2) </view>
 
-      <view style="padding: 10px 0" v-for="(li, index) in form.list" :key="index">
-        <view class="" style="padding: 10px 10px 20px 10px; background: #ffffff">
-          <view style="overflow: hidden"><u-icon name="trash" color="#FF0000" size="20" style="float: right"></u-icon></view>
-
-          <u--form :model="li" ref="uForm" :rules="rules" labelWidth="130" style="padding-left: 9px">
-            <u-form-item label="建筑地址" prop="li.name1" required :borderBottom="true">
-              <u-input v-model="li.name1" placeholder="请输入建筑地址" border="none" />
-            </u-form-item>
-            <u-form-item label="建筑结构" prop="li.name2" required :borderBottom="true" @click="handleAction('建筑结构', index)">
-              <u-input v-model="li.name2" placeholder="请选择建筑结构" border="none" suffixIcon="arrow-right" :suffixIconStyle="'color: #909399'" />
-            </u-form-item>
-            <u-form-item label="地上层数" prop="li.name3" required :borderBottom="true">
-              <u-input v-model="li.name3" placeholder="请输入地上层数" border="none" />
-            </u-form-item>
-            <u-form-item label="地下层数" prop="li.name4" required :borderBottom="true">
-              <u-input v-model="li.name4" placeholder="请输入地下层数" border="none" />
-            </u-form-item>
-            <u-form-item label="建筑面积" prop="li.name5" required :borderBottom="true">
-              <u-input v-model="li.name5" placeholder="请输入建筑面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
-            </u-form-item>
-            <u-form-item label="地下空间" prop="li.name6" required :borderBottom="true">
-              <u-input v-model="li.name6" placeholder="请输入地下空间面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
-            </u-form-item>
-            <u-form-item label="使用性质" prop="li.name7" required :borderBottom="true" @click="handleAction('使用性质', index)">
-              <u-input v-model="li.name7" placeholder="请选择使用性质" border="none" suffixIcon="arrow-right" :suffixIconStyle="'color: #909399'" />
-            </u-form-item>
-            <u-form-item label="建成年份" prop="li.name8" required :borderBottom="true" @click="showTime = true">
-              <u-input v-model="li.name8" placeholder="请选择建成年份" border="none" suffixIcon="calendar" suffixIconStyle="color: #909399;font-size:22px" />
-            </u-form-item>
-            <u-form-item label="建筑高度" prop="li.name9" required :borderBottom="true">
-              <u-input v-model="li.name9" placeholder="请输入建筑高度" border="none" />
-            </u-form-item>
-          </u--form>
+      <u--form :model="form.baseBuildList" ref="uForm1" :rules="rules" labelWidth="130">
+        <view style="padding: 10px 0" v-for="(li, index) in form.baseBuildList" :key="index">
+          <view class="" style="padding: 10px 10px 20px 10px; background: #ffffff">
+            <view style="overflow: hidden">
+              <u-icon name="trash" color="#FF0000" size="20" style="float: right" @click="deleteSubmit(index)"></u-icon>
+            </view>
+            <view style="padding-left: 9px">
+              <u-form-item label="建筑名称" prop="li.buildName" required :borderBottom="true">
+                <u-input v-model="li.buildName" placeholder="请输入建筑名称" border="none" />
+              </u-form-item>
+              <u-form-item label="建筑地址" prop="li.address" required :borderBottom="true">
+                <u-input v-model="li.address" placeholder="请输入建筑地址" border="none" />
+              </u-form-item>
+              <u-form-item label="建筑结构" prop="li.buildStructure" required :borderBottom="true" @click="handleAction('建筑结构', index)">
+                <u-input v-model="li.buildStructure" placeholder="请选择建筑结构" border="none" suffixIcon="arrow-right" :suffixIconStyle="'color: #909399'" />
+              </u-form-item>
+              <u-form-item label="地上层数" prop="li.aboveFloor" required :borderBottom="true">
+                <u-input v-model="li.aboveFloor" placeholder="请输入地上层数" border="none" />
+              </u-form-item>
+              <u-form-item label="地下层数" prop="li.underFloor" required :borderBottom="true">
+                <u-input v-model="li.underFloor" placeholder="请输入地下层数" border="none" />
+              </u-form-item>
+              <u-form-item label="建筑面积" prop="li.buildArea" required :borderBottom="true">
+                <u-input v-model="li.buildArea" placeholder="请输入建筑面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
+              </u-form-item>
+              <u-form-item label="地下空间" prop="li.underSpace" required :borderBottom="true">
+                <u-input v-model="li.underSpace" placeholder="请输入地下空间面积" suffixIcon="平方米" suffixIconStyle="color:#999999;font-size:15px" border="none" />
+              </u-form-item>
+              <u-form-item label="使用性质" prop="li.useCharacter" required :borderBottom="true" @click="handleAction('使用性质', index)">
+                <u-input v-model="li.useCharacter" placeholder="请选择使用性质" border="none" suffixIcon="arrow-right" :suffixIconStyle="'color: #909399'" />
+              </u-form-item>
+              <u-form-item label="建成年份" prop="li.completeYear" required :borderBottom="true" @click="handleDateTime('建成年份', index)">
+                <u-input v-model="li.completeYear" placeholder="请选择建成年份" border="none" suffixIcon="calendar" suffixIconStyle="color: #909399;font-size:22px" />
+              </u-form-item>
+              <u-form-item label="建筑高度" prop="li.buildHigh" required :borderBottom="true">
+                <u-input v-model="li.buildHigh" placeholder="请输入建筑高度" border="none" />
+              </u-form-item>
+            </view>
+          </view>
         </view>
-      </view>
+      </u--form>
 
       <view style="padding-bottom: 125px">
         <u-button type="primary" style="width: 25%; height: 25px; margin-top: 10px" @click="addSubmit" shape="circle" icon="plus" size="mini"> 添加建筑 </u-button>
       </view>
 
-      <view style="position: fixed; left: 0; right: 0; bottom: 0; padding: 15px; background-color: #f1f1f1">
+      <view style="position: fixed; left: 0; right: 0; bottom: 0; padding: 15px; background-color: transparent">
         <view>
           <u-button type="primary" style="width: 100%; height: 40px; font-size: 14px; margin-bottom: 15px" @click="backSubmit" shape="circle"> 上一步 </u-button>
 
@@ -122,61 +121,63 @@
 
     <u-action-sheet :show="actionShow" :actions="actionsList" :title="'请选择' + actionTitle" @close="actionShow = false" @select="selectAction"> </u-action-sheet>
 
-    <u-datetime-picker :show="showTime" v-model="Timevalue" mode="date" @close="showTime = false" @cancel="showTime = false" @confirm="timeSubmit" :closeOnClickOverlay="true"></u-datetime-picker>
+    <u-datetime-picker :show="showTime" v-model="timeValue" mode="date" @close="showTime = false" @cancel="showTime = false" @confirm="timeSubmit" :closeOnClickOverlay="true"></u-datetime-picker>
+
+    <u-modal :show="modalShow" title="系统提示" confirmText="是" cancelText="否" :showCancelButton="true" @confirm="modelSubmit('是')" @cancel="modelSubmit('否')">
+      <view class="slot-content">
+        <view style="text-align: center; margin-bottom: 10px">是否需要修改“单位名称”为:“{{ newCompanyName }}”的信息吗?</view>
+        <view style="text-align: center; font-size: 13px; color: #ff0000">注:“是”则继续修改,“否”则提交一次新的记录</view>
+      </view>
+    </u-modal>
   </view>
 </template>
 
 <script setup>
 import { onLoad, onShow, onHide, onLaunch, onReady } from "@dcloudio/uni-app";
-import { ref, onMounted, inject, shallowRef, reactive, toRefs } from "vue";
+import { ref, onMounted, inject, shallowRef, reactive, toRefs, getCurrentInstance } from "vue";
 
 import publicStore from "@/store/modules/public.js";
 
+import { companyByNameSelect, addBaseCompany } from "@/api/business/mhxf/unitInfoCollection";
+
+const { proxy } = getCurrentInstance();
+
 const newPublicStore = publicStore();
 
 const dataList = reactive({
   form: {
-    name1: "",
-    name2: "",
-    name3: "",
-    name4: "上海市闵行区",
-    name5: "",
-    name6: "",
-    name7: "",
-    name8: "",
-    name9: "",
-    name10: "",
-    name11: "",
-    name12: "",
-    name13: "",
-
-    list: [
-      {
-        name1: "",
-        name2: "砖混结构",
-        name3: "",
-        name4: "",
-        name5: "",
-        name6: "",
-        name7: "",
-        name8: "",
-        name9: "",
-      },
+    organization: "", //组织机构代码
+    companyName: "", //单位名称
+    delegateName: "", //法人代表姓名
+    address: "", //详细地址
+    fireManagePhone: "", //消防安全管理人电话
+    foundTime: "", //单位成立时间
+    fireDutyName: "", //消防安全责任人姓名
+    fireManageName: "", //消防安全管理人姓名
+    employeeNum: "", //职工人数
+    fixedAssets: "", //固定资产(单位:万元)
+    coverArea: "", //占地面积
+    buildArea: "", //建筑面积
+
+    baseBuildList: [
       {
-        name1: "",
-        name2: "砖混结构",
-        name3: "",
-        name4: "",
-        name5: "",
-        name6: "",
-        name7: "",
-        name8: "",
-        name9: "",
+        buildName: "", //建筑名称
+        address: "", //详细地址
+        buildStructure: "", //建筑结构
+        buildStructureValue: 0, //建筑结构
+        aboveFloor: "", //地上楼层
+        underFloor: "", //地下楼层
+        buildArea: "", //建筑面积
+        underSpace: "", //地下空间
+        useCharacter: "", //使用性质
+        useCharacterValue: 0,
+        completeYear: "", //竣工年份
+        buildHigh: "", //建筑高度
       },
     ],
   },
   rules: {
-    name1: [
+    organization: [
       {
         required: true,
         message: "请输入组织机构代码",
@@ -190,83 +191,169 @@ const dataList = reactive({
         trigger: ["change"],
       },
     ],
-
-    name4: [],
-
-    name7: [],
   },
   noticeBarText: "注:信息提交后不可修改,提交前请核对填写是否有误",
-  pagingBool: false,
-  addDisabled: true,
+  pagingBool: true,
 
   actionIndex: 0,
   actionTitle: "",
   actionShow: false,
   actionsList: [],
   showTime: false,
-  Timevalue: Number(new Date()),
+  timeValue: Number(new Date()),
+  timeTitle: "",
+  timeIndex: 0,
+
+  modalShow: false,
 });
 
-const { form, rules, noticeBarText, pagingBool, addDisabled, actionTitle, actionIndex, actionsList, actionShow, showTime, Timevalue } = toRefs(dataList);
+const { form, rules, noticeBarText, pagingBool, actionTitle, actionIndex, actionsList, actionShow, showTime, timeValue, timeTitle, timeIndex, modalShow } = toRefs(dataList);
 
 const uForm = ref(null);
+const uForm1 = ref(null);
+const newCompanyName = ref("");
 
 /**
- * @添加建筑
+ * @单位名称
+ * @icon图标按钮点击事件
+ */
+function companySubmit(e) {
+  actionsList.value = [];
+
+  companyByNameSelect({
+    companyName: e,
+  }).then((res) => {
+    if (res.status == "SUCCESS") {
+      if (res.data.length > 0) {
+        actionShow.value = true;
+        res.data.forEach((el) => {
+          el.name = el.companyName;
+          actionsList.value.push(el);
+        });
+        actionTitle.value = "单位名称";
+      } else {
+        proxy.$modal.msg("未匹配到您所输入的单位!");
+      }
+    }
+  });
+}
+
+/**
+ * @提交
  * @按钮点击事件
  */
-function addSubmit() {}
+function submit() {
+  let param = {};
+
+  if (newCompanyName.value == "") {
+    param = {
+      baseCompany: {
+        companyName: form.value.companyName, //单位名称
+        organization: form.value.organization, //组织机构代码
+        address: form.value.address, //单位地址
+        foundTime: form.value.foundTime + "T00:00:00", //成立时间
+      },
+      baseCompanyAttach1: {
+        employeeNum: form.value.employeeNum, //职工人数
+        coverArea: form.value.coverArea, //占地面积
+        buildArea: form.value.buildArea, //建筑面积
+        fixedAssets: form.value.fixedAssets, //固定资产
+      },
+      baseCompanyPerson: {
+        delegateName: form.value.delegateName, //法人代表姓名
+        fireDutyName: form.value.fireDutyName, //消防安全责任人姓名
+        fireManageName: form.value.fireManageName, //消防安全管理人姓名
+        fireManagePhone: form.value.fireManagePhone, //消防安全管理人电话
+      },
+      baseBuildList: [],
+    };
+    handleSubmitApi(param);
+  } else {
+    modalShow.value = true;
+  }
+}
 
 /**
- * @下一步
+ * @model弹窗
  * @按钮点击事件
  */
-function nextSubmit() {
-  console.log(form.value);
-  pagingBool.value = false;
+function modelSubmit(value) {
+  let param = {
+    baseCompany: {
+      companyName: form.value.companyName, //单位名称
+      organization: form.value.organization, //组织机构代码
+      address: form.value.address, //单位地址
+      foundTime: form.value.foundTime + "T00:00:00", //成立时间
+    },
+    baseCompanyAttach1: {
+      employeeNum: form.value.employeeNum, //职工人数
+      coverArea: form.value.coverArea, //占地面积
+      buildArea: form.value.buildArea, //建筑面积
+      fixedAssets: form.value.fixedAssets, //固定资产
+    },
+    baseCompanyPerson: {
+      delegateName: form.value.delegateName, //法人代表姓名
+      fireDutyName: form.value.fireDutyName, //消防安全责任人姓名
+      fireManageName: form.value.fireManageName, //消防安全管理人姓名
+      fireManagePhone: form.value.fireManagePhone, //消防安全管理人电话
+    },
+    baseBuildList: [],
+  };
+
+  if (value === "是") {
+    param.baseCompany.id = "id" in form.value ? form.value.id : undefined; //主键ID
+    param.baseCompany.companyId = "companyId" in form.value ? form.value.companyId : undefined; //单位ID
+
+    param.baseCompanyAttach1.id = "id1" in form.value ? form.value.id1 : undefined; //附表ID(id1)
+
+    param.baseCompanyPerson.id = "id2" in form.value ? form.value.id2 : undefined; //单位关联人员表ID(id2)
+  }
 
-  uForm.value
+  handleSubmitApi(param);
+}
+
+/**
+ * @api提交
+ */
+function handleSubmitApi(param) {
+  uForm1.value
     .validate()
     .then((res) => {
       uni.$u.toast("校验通过");
+
+      form.value.baseBuildList.forEach((el) => {
+        param.baseBuildList.push({
+          buildName: el.buildName, //建筑名称
+          address: el.address, //详细地址
+          buildStructure: el.buildStructureValue, //建筑结构
+          aboveFloor: el.aboveFloor, //地上楼层
+          underFloor: el.underFloor, //地下楼层
+          buildArea: el.buildArea, //建筑面积
+          underSpace: el.underSpace, //地下空间
+          useCharacter: el.useCharacterValue, //使用性质
+          completeYear: el.completeYear, //竣工年份
+          buildHigh: el.buildHigh, //建筑高度
+        });
+      });
+
+      addBaseCompany(param).then((res) => {
+        if (res.status == "SUCCESS") {
+          proxy.$tab.reLaunch("/pages/index");
+        }
+      });
     })
     .catch((errors) => {
       uni.$u.toast("校验失败");
     });
 }
 
-/**
- * @上一步
- * @按钮点击事件
- */
-function backSubmit() {
-  pagingBool.value = true;
-}
-
-/**
- * @提交
- * @按钮点击事件
- */
-function submit() {}
-
 /**
  * @action弹出框点击事件
  */
 function handleAction(value, index) {
-  console.log(value);
-
-  if (value == "单位地址") {
-    if (!addDisabled.value) {
-      actionShow.value = true;
-      actionsList.value = [
-        {
-          name: "上海市闵行区",
-        },
-      ];
-      actionTitle.value = "单位地址";
-    }
-  } else if (value == "建筑结构") {
-    actionShow.value = true;
+  actionShow.value = true;
+
+  if (value == "建筑结构") {
     actionsList.value = [
       {
         value: 1,
@@ -296,31 +383,26 @@ function handleAction(value, index) {
     actionTitle.value = "建筑结构";
     actionIndex.value = index;
   } else if (value == "使用性质") {
-    actionShow.value = true;
     actionsList.value = [
       {
         value: 1,
-        name: "砖混结构",
+        name: "工业",
       },
       {
         value: 2,
-        name: "钢筋混凝土",
+        name: "商业",
       },
       {
         value: 3,
-        name: "钢结构",
+        name: "办公",
       },
       {
         value: 4,
-        name: "大型钢筋混凝土",
+        name: "危险品",
       },
       {
         value: 5,
-        name: "木质结构",
-      },
-      {
-        value: 6,
-        name: "砖木结构",
+        name: "生产、存储、经营、居住一体",
       },
     ];
     actionTitle.value = "使用性质";
@@ -328,13 +410,51 @@ function handleAction(value, index) {
   }
 }
 
+/**
+ * @时间弹出框点击事件
+ */
+function handleDateTime(value, index) {
+  showTime.value = true;
+  if (value == "成立时间") {
+    timeIndex.value = index;
+    timeTitle.value = "成立时间";
+  } else if (value == "建成年份") {
+    timeIndex.value = index;
+    timeTitle.value = "建成年份";
+  }
+}
+
 /**
  * @action弹出框选择事件
  */
 function selectAction(e) {
-  console.log(e);
-
-  form.value.name4 = e.name;
+  if (actionTitle.value == "建筑结构") {
+    form.value.baseBuildList[actionIndex.value].buildStructure = e.name;
+    form.value.baseBuildList[actionIndex.value].buildStructureValue = e.value;
+  } else if (actionTitle.value == "使用性质") {
+    form.value.baseBuildList[actionIndex.value].useCharacter = e.name;
+    form.value.baseBuildList[actionIndex.value].useCharacterValue = e.value;
+  } else if (actionTitle.value == "单位名称") {
+    newCompanyName.value = e.companyName;
+    form.value = e;
+    form.value.foundTime = e.foundTime.split("T")[0];
+    form.value.baseBuildList = [
+      {
+        buildName: "", //建筑名称
+        address: "", //详细地址
+        buildStructure: "", //建筑结构
+        buildStructureValue: 0, //建筑结构
+        aboveFloor: "", //地上楼层
+        underFloor: "", //地下楼层
+        buildArea: "", //建筑面积
+        underSpace: "", //地下空间
+        useCharacter: "", //使用性质
+        useCharacterValue: 0,
+        completeYear: "", //竣工年份
+        buildHigh: "", //建筑高度
+      },
+    ];
+  }
 }
 
 /**
@@ -344,9 +464,66 @@ function selectAction(e) {
 function timeSubmit(data) {
   let time = newPublicStore.formatterDate(data.value);
   let timeData = time.split(" ")[0];
-  form.value.name7 = timeData;
+  if (timeTitle.value == "成立时间") {
+    form.value.foundTime = timeData;
+  } else if (timeTitle.value == "建成年份") {
+    form.value.baseBuildList[timeIndex.value].completeYear = timeData;
+  }
   showTime.value = false;
 }
+
+/**
+ * @添加建筑
+ * @按钮点击事件
+ */
+function addSubmit() {
+  form.value.baseBuildList.push({
+    buildName: "", //建筑名称
+    address: "", //详细地址
+    buildStructure: "", //建筑结构
+    buildStructureValue: 0, //建筑结构
+    aboveFloor: "", //地上楼层
+    underFloor: "", //地下楼层
+    buildArea: "", //建筑面积
+    underSpace: "", //地下空间
+    useCharacter: "", //使用性质
+    useCharacterValue: 0,
+    completeYear: "", //竣工年份
+    buildHigh: "", //建筑高度
+  });
+}
+
+/**
+ * @删除建筑
+ * @按钮点击事件
+ */
+function deleteSubmit(index) {
+  form.value.baseBuildList.splice(index, 1);
+}
+
+/**
+ * @上一步
+ * @按钮点击事件
+ */
+function backSubmit() {
+  pagingBool.value = true;
+}
+
+/**
+ * @下一步
+ * @按钮点击事件
+ */
+function nextSubmit() {
+  uForm.value
+    .validate()
+    .then((res) => {
+      uni.$u.toast("校验通过");
+      pagingBool.value = false;
+    })
+    .catch((errors) => {
+      uni.$u.toast("校验失败");
+    });
+}
 </script>
 
 <style lang="scss">

+ 6 - 4
src/store/modules/user.js

@@ -1,11 +1,9 @@
-import config from "@/config";
 import storage from "@/utils/storage";
 import constant from "@/utils/constant";
 import { login, logout, getInfo } from "@/api/login";
 import { getToken, setToken, removeToken } from "@/utils/auth";
 import { defineStore } from "pinia";
-
-const baseUrl = config.baseUrl;
+import modal from "@/plugins/modal.js";
 
 const useStores = defineStore("useStores", {
   state: () => ({
@@ -31,6 +29,7 @@ const useStores = defineStore("useStores", {
   actions: {
     // 登录
     Login(data) {
+      // const modal = inject("$modal");
       return new Promise((resolve, reject) => {
         login(data)
           .then((res) => {
@@ -39,6 +38,8 @@ const useStores = defineStore("useStores", {
             resolve();
           })
           .catch((error) => {
+            modal.closeLoading();
+            modal.msgError(error);
             reject(error);
           });
       });
@@ -46,7 +47,6 @@ const useStores = defineStore("useStores", {
 
     // 获取用户信息
     GetInfo() {
-      console.log(1);
       return new Promise((resolve, reject) => {
         getInfo()
           .then((res) => {
@@ -67,6 +67,7 @@ const useStores = defineStore("useStores", {
             resolve(res);
           })
           .catch((error) => {
+            modal.msgError(error);
             reject(error);
           });
       });
@@ -85,6 +86,7 @@ const useStores = defineStore("useStores", {
             resolve();
           })
           .catch((error) => {
+            modal.msgError(error);
             reject(error);
           });
       });

+ 7 - 2
src/utils/request.js

@@ -38,6 +38,7 @@ const request = (config) => {
           return;
         }
         const code = res.data.code || 200;
+
         if (code === 401) {
           showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then((res) => {
             if (res.confirm) {
@@ -47,8 +48,12 @@ const request = (config) => {
             }
           });
           reject("无效的会话,或者会话已过期,请重新登录。");
-        } else if (code === 500) {
-          reject("500");
+        } else if (code === 500 || res.statusCode === 500) {
+          if (res.data.msg.indexOf(":") !== -1) {
+            reject(res.data.msg.split(":")[1]);
+          } else {
+            reject(res.data.msg);
+          }
         } else if (code !== 200 && code !== "0") {
           reject(code);
         }