<template> 
 | 
    <GlobalWindow width="100%" :title="title" :visible.sync="isShowModal" :confirm-working="isWorking" @close="close" 
 | 
      @confirm="confirm"> 
 | 
        <div class="main"> 
 | 
            <div class="main_content"> 
 | 
                <el-form :model="param" label-position="top" ref="paramRef" :rules="rules"> 
 | 
                    <div class="head"> 
 | 
                        <div class="m_title">流水信息</div> 
 | 
                    </div> 
 | 
                    <div class="list"> 
 | 
                        <el-form-item label="关联合同" prop="type"> 
 | 
                            <el-select v-model="param.type" placeholder="请选择" clearable> 
 | 
                                <el-option v-for="item in types" :value="item.value" :label="item.name"></el-option> 
 | 
                            </el-select> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="费用类型" prop="code"> 
 | 
                            <el-input v-model="param.code" placeholder="请输入合同编号" v-trim /> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="费单周期" prop="aaa"> 
 | 
                            <el-select v-model="param.code" placeholder="请选择" clearable> 
 | 
                                <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> 
 | 
                            </el-select> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="应收金额" prop=""> 
 | 
                            <el-input v-model="param.code" placeholder="请输入实收金额" v-trim /> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="实收金额" prop=""> 
 | 
                            <el-input v-model="param.code" placeholder="请输入实收金额" v-trim /> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="入账日期" prop=""> 
 | 
                            <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="请选择" /> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="收款方式" prop=""> 
 | 
                            <el-select v-model="param.content" placeholder="请选择"> 
 | 
                                <el-option label="现金" :value="1"></el-option> 
 | 
                                <el-option label="网银转账" :value="2"></el-option> 
 | 
                                <el-option label="POS机" :value="3"></el-option> 
 | 
                                <el-option label="支付宝" :value="4"></el-option> 
 | 
                                <el-option label="微信" :value="5"></el-option> 
 | 
                                <el-option label="转账支票" :value="6"></el-option> 
 | 
                                <el-option label="其它方式" :value="7"></el-option> 
 | 
                            </el-select> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="所属公司" prop=""> 
 | 
                            <el-select v-model="param.code" placeholder="请选择" clearable> 
 | 
                                <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> 
 | 
                            </el-select> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="收支账户" prop=""> 
 | 
                            <el-select v-model="param.code" placeholder="请选择" clearable> 
 | 
                                <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> 
 | 
                            </el-select> 
 | 
                        </el-form-item> 
 | 
                        <el-form-item label="备注" prop="" style="width: 100%;"> 
 | 
                            <el-input type="textarea" :rows="6" v-model="param.content" placeholder="请输入" /> 
 | 
                        </el-form-item> 
 | 
                    </div> 
 | 
                </el-form> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="file_wrap"> 
 | 
            <div class="head"> 
 | 
                <div>账单附件</div> 
 | 
                <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl" 
 | 
                           :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError"> 
 | 
                    <el-button icon="el-icon-plus" plain>添加附件</el-button> 
 | 
                </el-upload> 
 | 
            </div> 
 | 
            <el-table :data="param.list" stripe> 
 | 
                <el-table-column prop="" label="附件名称" align="center" min-width="100" show-overflow-tooltip /> 
 | 
                <el-table-column prop="" label="操作人" align="center" min-width="100" show-overflow-tooltip /> 
 | 
                <el-table-column prop="" label="操作时间" align="center" min-width="100" show-overflow-tooltip /> 
 | 
                <el-table-column prop="" label="操作" align="center" min-width="100"> 
 | 
                    <template v-slot="scope"> 
 | 
                        <span class="cu red">删除</span> 
 | 
                    </template> 
 | 
                </el-table-column> 
 | 
            </el-table> 
 | 
        </div> 
 | 
    </GlobalWindow> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
  import GlobalWindow from '@/components/common/GlobalWindow' 
 | 
  import BaseOpera from '@/components/base/BaseOpera' 
 | 
  import { rules } from './config' 
 | 
  import { Message, Loading } from 'element-ui' 
 | 
  export default { 
 | 
    name: "flowingWater", 
 | 
    components: { 
 | 
      GlobalWindow 
 | 
    }, 
 | 
    extends: BaseOpera, 
 | 
    data() { 
 | 
      return { 
 | 
        isShowModal: false, 
 | 
        title: '', 
 | 
        activeTabs: '0', 
 | 
        param: {}, 
 | 
        rules, 
 | 
        timeTab: '0', 
 | 
  
 | 
        loadingInstance: null, 
 | 
        uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', 
 | 
        fileList: [], 
 | 
        uploadData: { 
 | 
          folder: 'HIDDEN_DANGER_FILE' 
 | 
        }, 
 | 
  
 | 
        types: [ 
 | 
          { name: '物业+租赁合同', value: 0 }, 
 | 
          { name: '租赁合同', value: 1 }, 
 | 
          { name: '物业合同', value: 2 }, 
 | 
        ], 
 | 
        agentList: [], //经办人 
 | 
        projectList: [], 
 | 
        comparyList: [], // 公司 
 | 
        renterList: [], // 租客 
 | 
        contacts: [], // 联系人 
 | 
        value: [], 
 | 
        options: [ 
 | 
          { 
 | 
            value: 1, 
 | 
            label: '东南', 
 | 
            children: [{ 
 | 
              value: 2, 
 | 
              label: '上海', 
 | 
              children: [ 
 | 
                { value: 3, label: '普陀' }, 
 | 
                { value: 4, label: '黄埔' }, 
 | 
                { value: 5, label: '徐汇' } 
 | 
              ] 
 | 
            }, { 
 | 
              value: 7, 
 | 
              label: '江苏', 
 | 
              children: [ 
 | 
                { value: 8, label: '南京' }, 
 | 
                { value: 9, label: '苏州' }, 
 | 
                { value: 10, label: '无锡' } 
 | 
              ] 
 | 
            }, { 
 | 
              value: 12, 
 | 
              label: '浙江', 
 | 
              children: [ 
 | 
                { value: 13, label: '杭州' }, 
 | 
                { value: 14, label: '宁波' }, 
 | 
                { value: 15, label: '嘉兴' } 
 | 
              ] 
 | 
            }] 
 | 
          }, 
 | 
          { 
 | 
            value: 17, 
 | 
            label: '西北', 
 | 
            children: [{ 
 | 
              value: 18, 
 | 
              label: '陕西', 
 | 
              children: [ 
 | 
                { value: 19, label: '西安' }, 
 | 
                { value: 20, label: '延安' } 
 | 
              ] 
 | 
            }, { 
 | 
              value: 21, 
 | 
              label: '新疆维吾尔族自治区', 
 | 
              children: [ 
 | 
                { value: 22, label: '乌鲁木齐' }, 
 | 
                { value: 23, label: '克拉玛依' } 
 | 
              ] 
 | 
            }] 
 | 
          } 
 | 
        ], 
 | 
        cactiveTabs: 0, 
 | 
        paramCost: {}, 
 | 
        payMethods: [ 
 | 
          { name: '一次性付款', value: 0 }, 
 | 
          { name: '3个月一付', value: 1 }, 
 | 
          { name: '6个月一付', value: 2 }, 
 | 
          { name: '1年一付', value: 2 }, 
 | 
        ], 
 | 
        unitOps: [ 
 | 
          { name: '元/m²·天', value: 0 }, 
 | 
          { name: '元/m²·月', value: 1 }, 
 | 
          { name: '元/天', value: 2 }, 
 | 
          { name: '元/月', value: 3 }, 
 | 
          { name: '元/年', value: 4 }, 
 | 
          { name: '元/m²·年', value: 5 }, 
 | 
          { name: '元/场', value: 6 }, 
 | 
        ], 
 | 
      } 
 | 
    }, 
 | 
    created() { 
 | 
      const { param } = this 
 | 
      this.title = param.id ? '编辑收款账单' : '创建收款账单' 
 | 
    }, 
 | 
    methods: { 
 | 
      tabsClick(val) { 
 | 
        this.activeTabs = val 
 | 
      }, 
 | 
      timeTabClick(val) { 
 | 
        this.timeTab = val 
 | 
      }, 
 | 
      getDetail() { 
 | 
  
 | 
      }, 
 | 
      handleRent() { 
 | 
        this.$refs.MemberSearchRef.openModal() 
 | 
      }, 
 | 
      houseChange(e) { 
 | 
        console.log(e) 
 | 
        console.log(this.value) 
 | 
  
 | 
      }, 
 | 
      beforeUpload(file) { 
 | 
        // if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { 
 | 
        //   this.$message.error('请上传正确的视频/图片格式') 
 | 
        //   return false 
 | 
        // } 
 | 
        this.loadingInstance = Loading.service({ 
 | 
          lock: true, 
 | 
          text: 'Loading', 
 | 
          spinner: 'el-icon-loading', 
 | 
          background: 'rgba(0, 0, 0, 0.7)' 
 | 
        }) 
 | 
      }, 
 | 
      uploadError() { 
 | 
        this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 
 | 
          if (this.loadingInstance) { 
 | 
            this.loadingInstance.close() 
 | 
          } 
 | 
        }) 
 | 
      }, 
 | 
      uploadAvatarSuccess(file) { 
 | 
        this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 
 | 
          if (this.loadingInstance) { 
 | 
            this.loadingInstance.close() 
 | 
          } 
 | 
        }) 
 | 
        console.log('file', file) 
 | 
        const item = file.data[0] 
 | 
        if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { 
 | 
          this.fileList.push({ 
 | 
            type: 1, 
 | 
            fileurl: item.imgaddr, 
 | 
            fileurlFull: item.url 
 | 
          }) 
 | 
        } else { 
 | 
          this.fileList.push({ 
 | 
            type: 0, 
 | 
            fileurl: item.imgaddr, 
 | 
            fileurlFull: item.url 
 | 
          }) 
 | 
        } 
 | 
        console.log('file', this.fileList) 
 | 
        // this.$set(this.param, 'faceImg', file.imgurl) 
 | 
        // this.$set(this.param, 'faceImgUrl', file.imgurlfull) 
 | 
      }, 
 | 
      close() { 
 | 
        this.isShowModal = false 
 | 
        this.$emit('close') 
 | 
      }, 
 | 
      open(title, target) { 
 | 
        this.title = title 
 | 
        this.isShowModal = true 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
    @import '@/assets/style/variables.scss'; 
 | 
  
 | 
  
 | 
    .cost_tabs { 
 | 
        justify-content: flex-start; 
 | 
        border: none; 
 | 
  
 | 
        .tab { 
 | 
            height: 36px; 
 | 
            line-height: 36px; 
 | 
            font-size: 14px; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    .main { 
 | 
        display: flex; 
 | 
        margin-bottom: 20px; 
 | 
  
 | 
        .main_content { 
 | 
            flex: 1; 
 | 
            margin-right: 20px; 
 | 
  
 | 
            .head { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: space-between; 
 | 
  
 | 
                .tabs { 
 | 
                    display: flex; 
 | 
                    margin-bottom: 20px; 
 | 
                    display: flex; 
 | 
                    justify-content: center; 
 | 
  
 | 
                    .tab { 
 | 
                        height: 14px; 
 | 
                        line-height: 14px; 
 | 
                        cursor: pointer; 
 | 
                        border: 1px solid #ebebeb; 
 | 
                        padding: 12px 24px; 
 | 
                    } 
 | 
  
 | 
                    .active { 
 | 
                        font-weight: 500; 
 | 
                        color: $primary-color; 
 | 
                        border: 1px solid $primary-color; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .list { 
 | 
                display: flex; 
 | 
                flex-wrap: wrap; 
 | 
  
 | 
                .el-form-item { 
 | 
                    width: 33.33%; 
 | 
                    box-sizing: border-box; 
 | 
                    padding: 0 12px; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        .main_house { 
 | 
            width: 320px; 
 | 
            padding: 24px 12px; 
 | 
            border: 1px solid #c3c6cd; 
 | 
            border-radius: 2px; 
 | 
  
 | 
            .title { 
 | 
                font-size: 16px; 
 | 
                font-weight: 500; 
 | 
                margin-bottom: 30px; 
 | 
            } 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    .total { 
 | 
        display: flex; 
 | 
        justify-content: space-between; 
 | 
        align-items: center; 
 | 
        height: 32px; 
 | 
        background-color: #e7e9f5; 
 | 
  
 | 
        span { 
 | 
            width: 160px; 
 | 
            text-align: center; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    .file_wrap { 
 | 
         
 | 
        .head { 
 | 
            display: flex; 
 | 
            justify-content: space-between; 
 | 
            align-items: center; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    .m_title { 
 | 
        font-weight: 500; 
 | 
        font-size: 14px; 
 | 
        margin-bottom: 15px; 
 | 
        margin-top: 10px; 
 | 
    } 
 | 
</style> 
 |