doum
9 天以前 078a5c4ced367fdbd5a16c27c8bada6e44e632d5
admin/src/components/business/operaVisitsWindow.vue
@@ -5,6 +5,7 @@
    :visible.sync="isShowModal"
    :confirm-working="isWorking"
    @confirm="confirm"
    @close="close"
  >
    <el-form :model="param" ref="paramRef" :rules="rules">
      <div class="title_tip">访客信息</div>
@@ -17,6 +18,7 @@
      <el-form-item label="访客手机号" prop="phone">
        <el-input
          v-model="param.phone"
          maxlength="11"
          placeholder="请输入访客的手机号"
        ></el-input>
      </el-form-item>
@@ -40,7 +42,7 @@
          placeholder="请输入来访的单位全称"
        ></el-input>
      </el-form-item>
      <el-form-item label="人脸照片">
      <el-form-item label="人脸照片" prop="faceImgUrl">
        <div class="upload_wrap">
          <UploadFaceImg
            :file="{ imgurlfull: param.faceImgUrl, imgurl: param.faceImg }"
@@ -59,7 +61,7 @@
      <div class="title_tip" style="margintop: 60px">访客预约</div>
      <el-form-item label="被访人" prop="receptMemberId">
        <el-select v-model="param.receptMemberId" placeholder="请选择">
        <el-select v-model="param.receptMemberId" disabled placeholder="请选择">
          <el-option
            v-for="item in memberList"
            :key="item.id"
@@ -90,7 +92,7 @@
        />
      </el-form-item>
      <el-form-item label="来访事由" prop="reason">
        <el-select v-model="param.reason" placeholder="请选择">
        <el-select v-model="param.reason" placeholder="请选择" @change="changeReason" value-key="id">
          <el-option
            v-for="item in VisitReason"
            :key="item.id"
@@ -99,7 +101,7 @@
          />
        </el-select>
      </el-form-item>
      <el-form-item label="是否施工作业">
<!--      <el-form-item label="是否施工作业">
        <el-switch
          style="width: 200px"
          v-model="param.type"
@@ -107,15 +109,15 @@
          :inactive-value="0"
        >
        </el-switch>
      </el-form-item>
      <el-form-item v-if="param.type == 1" label="施工内容">
      </el-form-item>-->
      <el-form-item v-if="param.type == 2" label="施工内容">
        <el-input
          v-model="param.constructionReason"
          placeholder="请输入施工内容"
        ></el-input>
      </el-form-item>
      <el-form-item label="随行车辆">
        <el-input v-model="param.carNos" placeholder="请输入车牌号"></el-input>
        <el-input v-model.trim="param.carNos" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')" placeholder="请输入车牌号"></el-input>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -128,13 +130,13 @@
import dayjs from 'dayjs'
import { createFk, getVisitedVisitReason, getVisitedMember } from '@/api/business/visits'
export default {
  name: 'OperaVisitsHkWindow',
  extends: BaseOpera,
  components: {
    GlobalWindow,
    UploadFaceImg
  },
  data() {
  data () {
    return {
      isShowModal: false,
      param: {
@@ -146,10 +148,11 @@
      VisitReason: [],
      memberList: [],
      uploadData: {
        folder: 'member'
        folder: 'member',
        isFace: 0
      },
      startPickerOptions: {
        disabledDate(time) {
        disabledDate (time) {
          return time.getTime() < Date.now() - 8.64e7 // 禁用超过当前时间的日期
        },
        selectableRange: '00:00:00 - 23:59:59' // 这个加上之后,时分秒上面才有禁止选择变灰,如果不加,也可以禁止选择,但是不会变灰
@@ -166,13 +169,13 @@
        starttime: [{ required: true, message: '请选择日期', trigger: 'change' }],
        endtime: [{ required: true, message: '请选择日期', trigger: 'change' }],
        reason: [{ required: true, message: '请选择', trigger: 'change' }],
        type: [{ required: true, message: '请选择', trigger: 'change' }],
        // type: [{ required: true, message: '请选择', trigger: 'change' }],
        receptMemberId: [{ required: true, message: '请选择', trigger: 'change' }],
        idcardType: [{ required: true, message: '请选择', trigger: 'change' }],
        faceImgUrl: [{ required: true, message: '请上传', trigger: 'change' }],
        name: [{ required: true, message: '请输入', trigger: 'blur' }],
        idcardNo: [{ required: true, message: '请输入', trigger: 'blur' }],
        // idcardNo: [{ required: true, message: '请输入', trigger: 'blur' }],
        companyName: [{ required: true, message: '请输入', trigger: 'blur' }],
        phone: [{ required: true, message: '请输入', trigger: 'blur' }],
        carNos: [{ required: true, message: '请输入', trigger: 'blur' }],
@@ -180,13 +183,14 @@
      }
    }
  },
  created() {
  created () {
    this.$set(this.param, 'receptMemberId', this.$store.state.userInfo.memberId)
    this.$set(this.param, 'starttime', dayjs().format('YYYY-MM-DD HH:mm:ss'))
    this.initData()
  },
  watch: {
    'param.starttime': {
      handler(newValue, oldValue) {
      handler (newValue, oldValue) {
        if (newValue) {
          const date = new Date()
          // const min = date.getMinutes()
@@ -210,7 +214,7 @@
      immediate: true
    },
    'param.endtime': {
      handler(newValue, oldValue) {
      handler (newValue, oldValue) {
        if (newValue) {
          const nowDate = dayjs(this.param.starttime).format('HH:mm:ss')
          let st = ''
@@ -228,7 +232,22 @@
    }
  },
  methods: {
    initData() {
    changeReason (val) {
      console.log(val)
      var obj = this.VisitReason.find(function (i) {
        return i.title === val
      })
      // 在change中获取到整条对象数据
      if(obj){
        this.param.type = obj.constructionType
      }
      console.log(obj)
    },
    close () {
      this.isShowModal = false
      this.$emit('close')
    },
    initData () {
      getVisitedVisitReason({}).then(res => {
        this.VisitReason = res || []
      })
@@ -237,19 +256,25 @@
        console.log('memberList', this.memberList)
      })
    },
    uploadAvatarSuccess(file) {
    uploadAvatarSuccess (file) {
      this.$set(this.param, 'faceImg', file.imgurl)
      this.$set(this.param, 'faceImgUrl', file.imgurlfull)
    },
    changeStarttime(e) {
      this.$set(this.param, 'endtime', this.param.starttime)
    changeStarttime (e) {
      // this.$set(this.param, 'endtime', this.param.starttime)
    },
    // 同步信息
    confirm() {
    confirm () {
      this.$refs.paramRef.validate((valid) => {
        if (!valid) {
          return
        }
        const { param } = this
        if (param.carNos) {
          param.carNos = param.carNos.replace(/\s*/g, '')
          param.carNos = param.carNos.replace(/[\r\n]/g, '')
        }
        if (param.starttime.slice(0, 10) !== param.endtime.slice(0, 10)) return this.$tip.error('入园时间和离园时间不可跨天')
        // 调用新建接口
        this.isWorking = true
        createFk({
@@ -262,7 +287,6 @@
            this.$emit('close')
          })
          .catch(e => {
            this.$tip.apiFailed(e)
          })
          .finally(() => {
            this.isWorking = false
@@ -281,6 +305,15 @@
.upload_wrap{
  display: flex;
  align-items: center;
  .avatar-uploader{
    display: flex;
    align-items: center;
    justify-content: center;
  }
  ::v-deep .avatar{
    max-width: 90px;
    max-height: 90px;
  }
  .content{
    display: flex;
    flex-direction: column;