Bladeren bron

完善出入管理页面

凉纪 1 jaar geleden
bovenliggende
commit
93668e7471

+ 2 - 1
src/components/selectCell/index.vue

@@ -132,7 +132,8 @@ export default {
       this.label = val[this.prop.label];
       console.log(this.label,'label')
       this.showPicker = false;
-      this.$emit('change',val[this.prop.value])
+      this.$emit('change',val[this.prop.value]);
+      this.$emit('itemInfo',val)
     },
     clickItem(){
       this.showPicker = true;

+ 64 - 34
src/views/menu/visitRecord/add.vue

@@ -19,22 +19,29 @@
               title="出入人员"
               :prop="prop"
               is-row
-              v-model="selectedUser"
+              @itemInfo="getItemInfo"
+              v-model="selectedUser.id"
               :data-list="userList"
               required>
             </select-cell>
-            <van-cell title="证件号码" :value="getDictLabel(visitInfo.type,'out_in_type')"></van-cell>
-            <van-cell title="证件照" :value="visitInfo.orgName"></van-cell>
-            <van-cell title="单位" :value="visitInfo.reasons"></van-cell>
-            <van-cell title="来访事由" :value="visitInfo.startTimeStr"></van-cell>
-            <van-cell title="出入类型" :value="visitInfo.orgName"></van-cell>
-            <van-cell title="陪同人员" :value="visitInfo.orgName"></van-cell>
+            <van-cell title="证件号码" :value="selectedUser.idCard"></van-cell>
+            <van-cell title="单位" :value="selectedUser.companyName"></van-cell>
+            <van-cell title="来访事由" :value="selectedUser.reasons"></van-cell>
+            <van-cell title="出入类型" :value="getDictLabel(selectedUser.type,'out_in_type')"></van-cell>
+            <van-field
+              v-model="formData.description"
+              required
+              rows="1"
+              autosize
+              :maxlength="200"
+              placeholder="请输入"
+              label="陪同人员"></van-field>
             <div class="upload-box">
               <span>证件照</span>
-              <van-cell v-if="visitInfo.letterFile">
+              <van-cell v-if="selectedUser.imgFile && selectedUser.imgFile.length > 0">
                 <div
                   class="nfc-img van-hairline--surround"
-                  v-for="(v, i) in visitInfo.letterFile"
+                  v-for="(v, i) in selectedUser.letterFile"
                   :key="v.imgPath"
                   @click="preView(v.imgPath)">
                   <img :src="imgUrl(v.imgPath)" alt="" />
@@ -43,32 +50,27 @@
             </div>
             <div class="upload-box">
               <span>介绍信</span>
-              <van-cell v-if="visitInfo.letterFile">
+              <van-cell v-if="selectedUser.letterFile && selectedUser.letterFile.length > 0">
                 <div
                   class="nfc-img van-hairline--surround"
-                  v-for="(v, i) in visitInfo.letterFile"
+                  v-for="(v, i) in selectedUser.letterFile"
                   :key="v.imgPath"
                   @click="preView(v.imgPath)">
                   <img :src="imgUrl(v.imgPath)" alt="" />
                 </div>
               </van-cell>
             </div>
+            <div class="upload-box" >
+              <span class="required">核验结果</span>
+              <uploader :maxCount="2" v-model="formData.checkImage"/>
+            </div>
+            <date-cell title="到达时间"  v-model="formData.arrivalTime" date-type="datetime" />
+            <date-cell title="离开时间"  v-model="formData.departureTime" date-type="datetime" />
           </div>
-        </van-panel>
-      </div>
-
-      <!--  人员列表  -->
-      <div class="card" v-for="(v,i) in userInfos" :key="i">
-        <div class="goods-card">
-          <div class="card-img-box" v-if="v.imgFile && v.imgFile.length > 0" @click="preView(v.imgFile)">
-            <img :src="imgUrl(v.imgFile[0])" alt="">
-          </div>
-          <div class="card-cell-box">
-            <van-cell title="出入人员" :value="v.userName"></van-cell>
-            <van-cell title="身份证" :value="v.idCard"></van-cell>
-            <van-cell title="单位" :value="v.companyName"></van-cell>
+          <div class="big-btn-box" >
+            <van-button  type="info" size="large" @click="onSubmit">提交申请</van-button>
           </div>
-        </div>
+        </van-panel>
       </div>
 
     </div>
@@ -83,25 +85,26 @@ import {formatDate} from "@/filters/filter";
 import {mapGetters} from "vuex";
 import {imgUrl} from "@/utils";
 import { ImagePreview } from 'vant'
-import {userList} from './api'
+import {userList, userRegister} from './api'
 export default {
   components: {Uploader, DateCell},
   data(){
     return {
       visitId:null,
-      activeNames:['1'],
-      visitInfo: {},
-      userInfos:[],
       userList:[],
       selectedUser:{},
       prop:{
         label:'userName',
         value:'id'
       },
-      reformData: {
-        reformDate: null,
-        description: null,
-        images: null,
+      formData:{
+        orgId:null,
+        letterId:null,
+        letterUserId:null,
+        arrivalTime:null,
+        departureTime:null,
+        accompanyingPerson:null,
+        checkImage:null,
       },
       dicts:['out_in_approve_status','out_in_type']
     }
@@ -115,6 +118,27 @@ export default {
   },
   methods:{
     imgUrl,formatDate,
+    onSubmit(){
+      let data = {
+        ...this.formData,
+        letterId:this.visitId,
+        letterUserId:this.selectedUser.id,
+        orgId:this.orgId,
+        arrivalTime:formatDate(this.formData.arrivalTime,'YYYY-MM-DD HH:mm:ss'),
+        departureTime:formatDate(this.formData.departureTime,'YYYY-MM-DD HH:mm:ss'),
+      }
+      userRegister(data).then(res=>{
+
+      })
+    },
+    getItemInfo(item){
+      if(item.imgFile && !Array.isArray(item.imgFile)){
+        console.log(item,'item')
+        item.imgFile = item.imgFile.split(',');
+      }
+      this.selectedUser = item;
+
+    },
     getUserList(){
       let data = {
         orgId:this.orgId,
@@ -214,6 +238,12 @@ export default {
       color: #ee0a24;
     }
   }
+  .required::before{
+    content: '*';
+    color: #ee0a24;
+    position: absolute;
+    left: 14px;
+  }
 }
 .goods-card{
   width: 100%;
@@ -234,7 +264,7 @@ export default {
   }
 }
 .big-btn-box{
-  padding-bottom: 20px;
+  padding: 20px;
 }
 .nfc-img {
   display: inline-block;

+ 10 - 21
src/views/menu/visitRecord/api.js

@@ -8,15 +8,7 @@ export function dataList(data) {
   });
 }
 
-//获取详情
-export function taskDetails(orgId){
-  return request({
-    url: "/core/question/info/"+orgId,
-    method: "get",
-  });
-}
-
-// 问题确认
+//用户列表
 export function userList(query) {
   return request({
     url: "/core/letter/approved/person",
@@ -25,22 +17,19 @@ export function userList(query) {
   });
 }
 
-// 异议审批
-export function confirmDissent(data) {
+//获取详情
+export function userDetails(id){
   return request({
-    url: "/core/question/confirmDissent/" + data.id,
-    method: "put",
-    data,
-    showLoading: true,
+    url: "/core/outinrecord/"+id,
+    method: "get",
   });
 }
 
-// 整改
-export function reform(data) {
+//人员登记
+export function userRegister(data){
   return request({
-    url: "/core/question/reform/" + data.id,
-    method: "put",
-    data,
+    url: "/core/outinrecord",
+    method: "post",
+    data
   });
 }
-

+ 2 - 2
src/views/menu/visitRecord/detail.vue

@@ -64,7 +64,7 @@ import {formatDate} from "@/filters/filter";
 import {mapGetters} from "vuex";
 import {imgUrl} from "@/utils";
 import { ImagePreview } from 'vant'
-import {visitDetails} from './api'
+import {userDetails} from './api'
 export default {
   components: {Uploader, DateCell},
   data(){
@@ -104,7 +104,7 @@ export default {
       }
     },
     getInfo(){
-      visitDetails(this.visitId).then(res=>{
+      userDetails(this.visitId).then(res=>{
         this.visitInfo = res.data;
         if(res.data.letterFile){
           let imgArr = res.data.letterFile.map(v=>{

+ 5 - 5
src/views/menu/visitRecord/index.vue

@@ -26,11 +26,11 @@
             :title-style="{color:v.type == 3?'#D7000F':''}"
             :title="getDictLabel(v.type,'out_in_type')"
             @click="clickItem(v.id)">
-              <template #extra>
-                <span :style="{color:getState(getDictLabel(v.approveStatus,'out_in_approve_status'))}">
-                  {{getDictLabel(v.approveStatus,'out_in_approve_status') }}
-                </span>
-              </template>
+<!--              <template #extra>-->
+<!--                <span :style="{color:getState(getDictLabel(v.approveStatus,'out_in_approve_status'))}">-->
+<!--                  {{getDictLabel(v.approveStatus,'out_in_approve_status') }}-->
+<!--                </span>-->
+<!--              </template>-->
             <template #label>
               <div class="info-box">
                 <div class="info-item">