已添加10个文件
已删除1个文件
已修改15个文件
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/ywFindPage', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/ywCreate', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/ywUpdateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/member/delete/${id}`) |
| | | } |
| | | |
| | | export function detailById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/member/${id}`) |
| | | } |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/visitsAdmin/cloudService/business/member/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
| | |
| | | return request.get(`/visitsAdmin/cloudService/business/ywCustomer/delete/${id}`) |
| | | } |
| | | |
| | | export function detailById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywCustomer/${id}`) |
| | | } |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/visitsAdmin/cloudService/business/ywCustomer/delete/batch', { |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | export function getRoomList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywRoom/list', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywRoom/exportExcel', data, { |
| | |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <div class="title">{{ title }}</div> |
| | | <div class="list"> |
| | | <!-- <div class="list"> |
| | | <div class="item active"> |
| | | <div>æå¡ä¸å¿</div> |
| | | <div class="linellae"></div> |
| | |
| | | <div class="item" @click="getHeaderNav('1')">æ¶æ§ä¸å¿</div> |
| | | <div class="item" @click="getHeaderNav('2')">è½ç®¡ä¸å¿</div> |
| | | <div class="item" @click="getHeaderNav('3')">驾驶è±</div> |
| | | </div> |
| | | </div> --> |
| | | <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> --> |
| | | </div> |
| | | <div class="user"> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']"> |
| | | <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:category:create']">æ°å»º</el-button></li> |
| | | <li v-permissions="['business:category:exportExcel']"><el-button type="primary" |
| | | @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" |
| | | :data="dataList" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" label="è¡ä¸åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="80px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="æä½" |
| | | min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryWindow v-if="isShowEdit" @close="isShowEdit = false" ref="operaCategoryWindow" @success="getList" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryWindow from './components/OperaCategoryWindow' |
| | | import { fetchList, deleteById } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'Category', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryWindow }, |
| | | data() { |
| | | return { |
| | | // æç´¢ |
| | | filters: { |
| | | parentId: '' |
| | | }, |
| | | isShowEdit: false, |
| | | loading: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0, |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | module: '车è¾ä¿¡æ¯è¡¨', |
| | | api: '/business/category', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | handleEdit(row) { |
| | | this.isShowEdit = true |
| | | let str = row && row.id ? 'ç¼è¾è¡ä¸' : 'æ°å»ºè¡ä¸' |
| | | this.$nextTick(() => { |
| | | this.$refs.operaCategoryWindow.open(str) |
| | | if (row && row.id) { |
| | | this.$refs.operaCategoryWindow.getDetail(row.id) |
| | | } |
| | | }) |
| | | }, |
| | | deleteById(row) { |
| | | this.$confirm(`æ¨ç¡®è®¤è¦å é¤è¯¥è¡ä¸å`, '温馨æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteById(row.id).then(res => { |
| | | this.getList() |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | getList() { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { ...filters, type: 6 }, |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="type" label="ç±»å 0个人 1ä¼ä¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="客æ·ç±»å" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.type == '0' ? '个人' : 'ä¼ä¸' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="客æ·åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberName" label="è系人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardNo" label="身份è¯å·ï¼å å¯ï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberPhone" label="èç³»çµè¯" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="idcardNo" label="身份è¯å·" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="creditCard" label="ç»ä¸ä¿¡ç¨ä»£ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="validity" label="è¥ä¸æé" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.validity == '2099-12-31' ? 'é¿æ' : row.validity }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="é»è®¤å票类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.fpType == '0' ? 'å¢å¼ç¨æ®éå票' : row.fpType == '1' ? 'å¢å¼ç¨ä¸ç¨å票' : '-' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="è¡ä¸åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥è¡ä¸åç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 6)" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { create, fetchCateList, getInfoById } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'OperaCategoryWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | parentId: null, |
| | | name: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | type: 6 |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥äºçº§åç±»åç§°', trigger: 'blur' } |
| | | ], |
| | | status: [ |
| | | { required: true, message: 'è¯·éæ©æ¯å¦å¯ç¨', trigger: 'change' } |
| | | ] |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | api: '/business/category', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | close() { |
| | | this.visible = false |
| | | this.$emit('close') |
| | | }, |
| | | getDetail(id) { |
| | | getInfoById(id).then(res => { |
| | | this.form = res |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" width="900px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="ç±»å 0个人 1ä¼ä¸" prop="type"> |
| | | <el-input v-model="form.type" placeholder="请è¾å
¥ç±»å 0个人 1ä¼ä¸" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="客æ·" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å®¢æ·" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请è¾å
¥ææºå·" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·ï¼å å¯ï¼" prop="idcardNo"> |
| | | <el-input v-model="form.idcardNo" placeholder="请è¾å
¥èº«ä»½è¯å·ï¼å å¯ï¼" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è¯ä»¶æ¾ç¤ºä¿¡æ¯" prop="idcardDecode"> |
| | | <el-input v-model="form.idcardDecode" placeholder="请è¾å
¥è¯ä»¶æ¾ç¤ºä¿¡æ¯" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="客æ·ç¼ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥å®¢æ·ç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0æ£å¸¸ 1ç¦ç¨" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请è¾å
¥ç¶æ 0æ£å¸¸ 1ç¦ç¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="身份 0èæ¿ 1è¶
级管çå" prop="highCheckor"> |
| | | <el-input v-model="form.highCheckor" placeholder="请è¾å
¥èº«ä»½ 0èæ¿ 1è¶
级管çå" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è¯ä»¶ç±»å 0èº«ä»½è¯ 1港澳è¯ä»¶ 2æ¤ç
§" prop="idcardType"> |
| | | <el-input v-model="form.idcardType" placeholder="请è¾å
¥è¯ä»¶ç±»å 0èº«ä»½è¯ 1港澳è¯ä»¶ 2æ¤ç
§" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="弿·é¶è¡" prop="accountBank"> |
| | | <el-input v-model="form.accountBank" placeholder="请è¾å
¥å¼æ·é¶è¡" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è´¦å·" prop="accountNo"> |
| | | <el-input v-model="form.accountNo" placeholder="请è¾å
¥è´¦å·" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è´¦æ·çµè¯" prop="accountPhone"> |
| | | <el-input v-model="form.accountPhone" placeholder="请è¾å
¥è´¦æ·çµè¯" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ä¸ä¿¡ç¨ä»£ç " prop="creditCard"> |
| | | <el-input v-model="form.creditCard" placeholder="请è¾å
¥ç»ä¸ä¿¡ç¨ä»£ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é»è®¤å票类å 0å¢å¼ç¨æ®éå票 1å¢å¼ç¨ä¸ç¨å票" prop="fpType"> |
| | | <el-input v-model="form.fpType" placeholder="请è¾å
¥é»è®¤å票类å 0å¢å¼ç¨æ®éå票 1å¢å¼ç¨ä¸ç¨å票" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è´¦å·æ³¨åå°å" prop="accountAddr"> |
| | | <el-input v-model="form.accountAddr" placeholder="请è¾å
¥è´¦å·æ³¨åå°å" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="身份类å0èæ¿è¶
级管çå;1=人äºç®¡çå;2=åå·¥" prop="identityType"> |
| | | <el-input v-model="form.identityType" placeholder="请è¾å
¥èº«ä»½ç±»å0èæ¿è¶
级管çå;1=人äºç®¡çå;2=åå·¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é®ç®±" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥é®ç®±" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è系人ç¼ç ï¼å
³èmemberï¼" prop="memberId"> |
| | | <el-input v-model="form.memberId" placeholder="请è¾å
¥è系人ç¼ç ï¼å
³èmemberï¼" v-trim/> |
| | | </el-form-item> |
| | | <div class="list"> |
| | | <div class="title">åºç¡ä¿¡æ¯</div> |
| | | <el-form-item label="客æ·" prop="name"> |
| | | <div class="df"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å®¢æ·" v-trim /> |
| | | <el-checkbox v-model="form.type" class="ml10" true-label="0" false-label="1">个人</el-checkbox> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="è¡ä¸åç±»" prop="industryId"> |
| | | <el-select v-model="form.industryId" clearable filterable> |
| | | <el-option v-for="item in cateList" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="客æ·ç¼å·" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <div class="title">é»è®¤è系人</div> |
| | | <el-form-item label="å§å" prop="member.name"> |
| | | <el-input v-model="form.member.name" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="member.phone"> |
| | | <el-input v-model="form.member.phone" placeholder="请è¾å
¥ææºå·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="身份"> |
| | | <el-select v-model="form.member.highCheckor" filterable> |
| | | <el-option :value="0" label="èæ¿/è¶
级管çå" /> |
| | | <el-option :value="1" label="人äº/管çå" /> |
| | | <el-option :value="2" label="åå·¥/æ®éåå·¥" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è¯ä»¶ç±»å"> |
| | | <el-select v-model="form.member.idcardType" filterable> |
| | | <el-option :value="0" label="身份è¯" /> |
| | | <el-option :value="1" label="港澳è¯ä»¶" /> |
| | | <el-option :value="2" label="æ¤ç
§" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è¯ä»¶å·ç " prop="member.idcardNo"> |
| | | <el-input v-model="form.member.idcardNo" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="é®ç®±" prop="email"> |
| | | <el-input v-model="form.member.email" placeholder="请è¾å
¥é®ç®±" v-trim /> |
| | | </el-form-item> |
| | | |
| | | <div class="title">è´¦æ·ä¿¡æ¯</div> |
| | | <el-form-item label="弿·é¶è¡" prop="accountBank"> |
| | | <el-input v-model="form.accountBank" placeholder="请è¾å
¥å¼æ·é¶è¡" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="è´¦å·" prop="accountNo"> |
| | | <el-input v-model="form.accountNo" placeholder="请è¾å
¥è´¦å·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="çµè¯" prop="accountPhone"> |
| | | <el-input v-model="form.accountPhone" placeholder="请è¾å
¥è´¦æ·çµè¯" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ä¸ä¿¡ç¨ä»£ç " prop="creditCard"> |
| | | <el-input v-model="form.creditCard" placeholder="请è¾å
¥ç»ä¸ä¿¡ç¨ä»£ç " v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="é»è®¤å票类å" prop="fpType"> |
| | | <el-select v-model="form.fpType" clearable filterable> |
| | | <el-option :value="0" label="å¢å¼ç¨æ®éå票" /> |
| | | <el-option :value="1" label="å¢å¼ç¨ä¸ç¨å票" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="注åå°å" prop="accountAddr"> |
| | | <el-input v-model="form.accountAddr" placeholder="请è¾å
¥è´¦å·æ³¨åå°å" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="è¥ä¸æé"> |
| | | <div class="df"> |
| | | <el-date-picker type="date" v-model="form.validity" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | <el-checkbox v-model="form.selLangTime" @change="changeValid" class="ml10">é¿æ</el-checkbox> |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | </div> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { fetchCateList } from '@/api/business/category' |
| | | import { rules } from './config' |
| | | import { detailById } from '@/api/client/ywCustomer' |
| | | export default { |
| | | name: 'OperaYwCustomerWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | validity: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | |
| | | isdeleted: '', |
| | | remark: '', |
| | | industryId: '', |
| | | type: '', |
| | | type: '1', |
| | | name: '', |
| | | phone: '', |
| | | idcardNo: '', |
| | | idcardDecode: '', |
| | | code: '', |
| | | status: '', |
| | | highCheckor: '', |
| | | memberName: '', |
| | | |
| | | lastLoginDate: '', |
| | | loginNum: '', |
| | | userId: '', |
| | | idcardType: '', |
| | | |
| | | accountBank: '', |
| | | accountNo: '', |
| | | accountPhone: '', |
| | | creditCard: '', |
| | | fpType: '', |
| | | accountAddr: '', |
| | | identityType: '', |
| | | // identityType: '0', |
| | | email: '', |
| | | memberId: '' |
| | | memberId: '', |
| | | member: { |
| | | name: "", |
| | | phone: "", |
| | | highCheckor: 0, |
| | | idcardType: 0, |
| | | idcardNo: '', |
| | | email: '', |
| | | } |
| | | }, |
| | | cateList: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | rules |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | api: '/client/ywCustomer', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | initData() { |
| | | fetchCateList({ type: 6 }).then(res => { |
| | | this.cateList = res |
| | | }) |
| | | }, |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.initData() |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | if(title == 'ç¼è¾å®¢æ·'){ |
| | | detailById(target.id).then(res => { |
| | | this.form = res |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | changeValid(e) { |
| | | this.$set(this.form, 'validity', e ? '2099-12-31' : '') |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style lang='scss' scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | div { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .title { |
| | | width: 100%; |
| | | font-weight: 500; |
| | | font-size: 15px; |
| | | margin-top: 16px; |
| | | } |
| | | |
| | | .list { |
| | | /* padding-top: 14px; */ |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .el-form-item { |
| | | width: 33.33%; |
| | | margin-bottom: 12px; |
| | | padding: 0 12px; |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const rules = { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | 'member.name': [{ required: true, message: '请è¾å
¥' }], |
| | | 'member.phone': [{ required: true, message: '请è¾å
¥' }], |
| | | } |
| | | export const staffRules = { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | 'member.name': [{ required: true, message: '请è¾å
¥' }], |
| | | phone: [{ required: true, message: '请è¾å
¥' }], |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" width="900px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <div class="list"> |
| | | <el-form-item label="客æ·åç§°" prop="customerId"> |
| | | <el-select v-model="form.customerId" clearable filterable> |
| | | <el-option v-for="item in clientList" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <div class="df"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥" v-trim /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请è¾å
¥ææºå·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="身份"> |
| | | <el-select v-model="form.highCheckor" filterable> |
| | | <el-option :value="0" label="èæ¿/è¶
级管çå" /> |
| | | <el-option :value="1" label="人äº/管çå" /> |
| | | <el-option :value="2" label="åå·¥/æ®éåå·¥" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è¯ä»¶ç±»å"> |
| | | <el-select v-model="form.idcardType" filterable> |
| | | <el-option :value="0" label="身份è¯" /> |
| | | <el-option :value="1" label="港澳è¯ä»¶" /> |
| | | <el-option :value="2" label="æ¤ç
§" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è¯ä»¶å·ç " prop="member.idcardNo"> |
| | | <el-input v-model="form.idcardNo" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="é®ç®±" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥é®ç®±" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æ§å«"> |
| | | <el-select v-model="form.sex" filterable> |
| | | <el-option :value="1" label="ç·" /> |
| | | <el-option :value="2" label="女" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºçæ¥æ"> |
| | | <el-date-picker type="date" v-model="form.birthday" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | |
| | | </div> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { fetchCateList } from '@/api/business/category' |
| | | import { staffRules } from './config' |
| | | import { detailById } from '@/api/client/ywCustomer' |
| | | import { fetchList } from '@/api/client/ywCustomer' |
| | | export default { |
| | | name: 'OperaYwCustomerWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | customerId: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | birthday: '', |
| | | industryId: '', |
| | | type: '1', |
| | | idcardDecode: '', |
| | | sex: '', |
| | | status: '', |
| | | memberName: '', |
| | | |
| | | lastLoginDate: '', |
| | | loginNum: '', |
| | | userId: '', |
| | | |
| | | accountBank: '', |
| | | accountNo: '', |
| | | accountPhone: '', |
| | | creditCard: '', |
| | | fpType: '', |
| | | accountAddr: '', |
| | | // identityType: '0', |
| | | name: "", |
| | | phone: "", |
| | | highCheckor: 0, |
| | | idcardType: 0, |
| | | idcardNo: '', |
| | | email: '', |
| | | }, |
| | | clientList: [], |
| | | // éªè¯è§å |
| | | rules: staffRules |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | api: '/client/staff', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | |
| | | methods: { |
| | | initData() { |
| | | fetchList({ |
| | | capacity: 9000, |
| | | model: {}, |
| | | page: 1 |
| | | }).then(res => { |
| | | this.clientList = res.records || [] |
| | | }) |
| | | }, |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.initData() |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | }) |
| | | }, |
| | | changeValid(e) { |
| | | this.$set(this.form, 'validity', e ? '2099-12-31' : '') |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style lang='scss' scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | div { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .title { |
| | | width: 100%; |
| | | font-weight: 500; |
| | | font-size: 15px; |
| | | margin-top: 16px; |
| | | } |
| | | |
| | | .list { |
| | | /* padding-top: 14px; */ |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .el-form-item { |
| | | width: 33.33%; |
| | | margin-bottom: 12px; |
| | | padding: 0 12px; |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <TableLayout :permissions="['business:ywcustomer:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="客æ·åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å®¢æ·åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="客æ·åç§°" prop="customerId"> |
| | | <el-select v-model="searchForm.customerId" clearable filterable> |
| | | <el-option v-for="item in clientList" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥äººåå§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywcustomer:create', 'business:ywcustomer:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwCustomerWindow.open('æ°å»ºå®¢æ·')" icon="el-icon-plus" |
| | | <li><el-button type="primary" @click="$refs.operaYwCustomerWindow.open('æ°å»ºäººå')" icon="el-icon-plus" |
| | | v-permissions="['business:ywcustomer:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywcustomer:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" label="客æ·åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberName" label="è系人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="customerName" label="客æ·åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="è系人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="èç³»çµè¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="身份" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="身份" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.highCheckor == 0">èæ¿/è¶
级管çå</span> |
| | | <span v-if="row.highCheckor == 1">人äº/管çå</span> |
| | | <span v-if="row.highCheckor == 2">åå·¥/æ®éåå·¥</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span :class="{ red: row.status == 1 }">{{ row.status == '0' ? 'æ£å¸¸' : 'ç¦ç¨' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwCustomerWindow.open('ç¼è¾å®¢æ·', row)" icon="el-icon-edit" |
| | | <el-button type="text" @click="$refs.operaYwCustomerWindow.open('ç¼è¾äººå', row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywcustomer:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywcustomer:delete']">å é¤</el-button> |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaYwCustomerWindow from './components/OperaYwCustomerWindow' |
| | | import OperaYwCustomerWindow from './components/staffEdit.vue' |
| | | import { fetchList } from '@/api/client/ywCustomer' |
| | | export default { |
| | | name: 'YwCustomer', |
| | | extends: BaseTable, |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | remark: '', |
| | | industryId: '', |
| | | type: '', |
| | | customerId: '', |
| | | name: '', |
| | | phone: '', |
| | | idcardNo: '', |
| | | idcardDecode: '', |
| | | code: '', |
| | | status: '', |
| | | highCheckor: '', |
| | | lastLoginDate: '', |
| | | loginNum: '', |
| | | userId: '', |
| | | idcardType: '', |
| | | accountBank: '', |
| | | accountNo: '', |
| | | accountPhone: '', |
| | | creditCard: '', |
| | | fpType: '', |
| | | accountAddr: '', |
| | | identityType: '', |
| | | email: '', |
| | | memberId: '' |
| | | } |
| | | }, |
| | | clientList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | module: 'è¿ç»´å®¢æ·ä¿¡æ¯è¡¨', |
| | | api: '/client/ywCustomer', |
| | | api: '/client/staff', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | initData() { |
| | | fetchList({ |
| | | capacity: 9000, |
| | | model: {}, |
| | | page: 1 |
| | | }).then(res => { |
| | | this.clientList = res.records || [] |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow width="1000px" :title="title" :visible.sync="showModal" :confirm-working="isWorking" @close="close" @confirm="confirm"> |
| | | <GlobalWindow width="1000px" :title="title" :visible.sync="showModal" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">1ãåºæ¬ä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">2ãè´¹ç¨æ¡æ¬¾</div> |
| | |
| | | <div class="file_wrap"> |
| | | <div class="head"> |
| | | <div>ååéä»¶</div> |
| | | <el-button icon="el-icon-plus" plain>æ·»å éä»¶</el-button> |
| | | <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-button style="width: 100%;height: 48px;" type="primary" plain>çæè´¦åæç»</el-button> |
| | | <el-table :data="paramCost.list" class="mt20" stripe> |
| | | <el-table-column prop="" label="è´¹ç¨ç±»å" align="center" width="160px" 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" 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 /> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import MemberSearch from '@/components/common/MemberSearch' |
| | | import { rules } from './config' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | components: { |
| | | GlobalWindow, |
| | |
| | | activeTabs: '0', |
| | | param: {}, |
| | | rules, |
| | | |
| | | loadingInstance: null, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | | fileList: [], |
| | | uploadData: { |
| | | folder: 'HIDDEN_DANGER_FILE' |
| | | }, |
| | | |
| | | types: [ |
| | | { name: 'ç©ä¸+ç§èµåå', value: 0 }, |
| | |
| | | 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.showModal = false |
| | | this.$emit('close') |
| | |
| | | } |
| | | |
| | | .main_house { |
| | | width: 420px; |
| | | width: 320px; |
| | | padding: 24px 12px; |
| | | border: 1px solid #c3c6cd; |
| | | border-radius: 2px; |
| | |
| | | } |
| | | |
| | | } |
| | | .total{ |
| | | |
| | | .total { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 32px; |
| | | background-color: #e7e9f5; |
| | | span{ |
| | | |
| | | span { |
| | | width: 160px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | |
| | | .file_wrap { |
| | | padding: 20px 16px; |
| | | border: 1px solid #c3c6cd; |
| | |
| | | </div> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="è¿ç»´äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="设å¤ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="设å¤åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="stautsName" label="设å¤ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="remark" label="è¿ç»´å¤æ³¨" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="客æ·åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="楼å®åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="æ¿é´å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="stautsName" label="ååç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="remark" label="ç»æ¸
ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="è´¦åéé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="åºæ¶éé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="ååç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">æ¥ç</el-button> |
| | | v-permissions="['business:category:update']">æ¥ç详æ
</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | <Detail ref="DetailRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/deviceEdit.vue' |
| | | import Edit from './components/bullEdit.vue' |
| | | import Detail from './components/bullDetail.vue' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | Edit, |
| | | Detail |
| | | }, |
| | | data() { |
| | | return { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="'è´¦å详æ
'" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="home_title"> |
| | | <div class="left"> |
| | | <span class="mr10">仿¬¾æ¹ï¼xxx</span> |
| | | <span class="status">status</span> |
| | | </div> |
| | | <el-button plain type="primary">æ°å»ºæ¶æ¯æµæ°´</el-button> |
| | | </div> |
| | | <div class="remark"> |
| | | <div class="item"> |
| | | <div class="la">è´¦åç¶æ</div> |
| | | <div class="val">å·²ç»æ¸
</div> |
| | | </div> |
| | | </div> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">ååä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">å
³èè´¦å</div> |
| | | <div class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">æä½è®°å½</div> |
| | | </div> |
| | | <div class="main"> |
| | | <div class="title">åºç¡ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">è´¦åç±»å</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è®¡è´¹å¨æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è´¦åéé¢(å
)</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è´¦åç¼å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ååç¼å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å建æ¶é´</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">仿¬¾æ¹</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»å人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">æå±å
¬å¸</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è´¦å夿³¨</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">æ¿æºä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">项ç®åç§°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å®åç§°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å±/æ¿å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">é¢ç§¯</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">ç§å®¢ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">ç§å®¢</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»å人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">ç§èµæ¡æ¬¾</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">æ¼ééé¢</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">仿¬¾æ¹å¼</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å
ç§æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <el-table :data="info.list" stripe> |
| | | <el-table-column prop="" label="å¼å§æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç»ææ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åååä»·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="仿¬¾æå天æ°" min-width="100" show-overflow-tooltip /> |
| | | </el-table> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: true, |
| | | activeTabs: '', |
| | | info: {} |
| | | } |
| | | }, |
| | | methods: { |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | getDetail() { |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | .home_title { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .left { |
| | | font-weight: 500; |
| | | font-size: 16px; |
| | | margin-right: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .status { |
| | | padding: 0 6px; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | border-radius: 2px; |
| | | border: 1px solid #00BA92; |
| | | color: #00BA92; |
| | | font-weight: 400; |
| | | font-size: 12px; |
| | | color: #00BA92; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | background: #E8EBF7; |
| | | border-radius: 2px; |
| | | padding: 10px 20px; |
| | | font-size: 16px; |
| | | margin: 20px 0 |
| | | } |
| | | |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | .tab { |
| | | height: 58px; |
| | | line-height: 58px; |
| | | font-size: 16px; |
| | | color: #666666; |
| | | margin-right: 30px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | color: $primary-color; |
| | | border-bottom: 2px solid $primary-color; |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 18px; |
| | | color: $primary-color; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | background: #F7F7F7; |
| | | border-radius: 2px; |
| | | padding: 15px 20px; |
| | | margin-bottom: 20px; |
| | | |
| | | .item { |
| | | width: 25%; |
| | | margin-bottom: 16px; |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow width="1100px" :title="title" :visible.sync="isShowModal" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <template v-if="activeTabs == 0"> |
| | | <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 class="tabs"> |
| | | <div class="tab" :class="{ active: timeTab == 0 }" @click="timeTabClick('0')">å¨æè´¹ç¨</div> |
| | | <div class="tab" :class="{ active: timeTab == 1 }" @click="timeTabClick('1')">䏿¬¡æ§è´¹ç¨</div> |
| | | </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.aaa" 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-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </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-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.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in comparyList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item style="width: 100%;" label="è´¦å夿³¨" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <div class="main_house"> |
| | | <div class="title">è¯·éæ©æ¿æº</div> |
| | | <el-cascader style="width: 300px" v-model="value" @change="houseChange" :options="options" |
| | | :props="{ multiple: true }" collapse-tags clearable /> |
| | | </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> |
| | | </template> |
| | | <!-- --> |
| | | <MemberSearch ref="MemberSearchRef" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import MemberSearch from '@/components/common/MemberSearch' |
| | | import { rules } from './config' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | components: { |
| | | GlobalWindow, |
| | | MemberSearch |
| | | }, |
| | | 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') |
| | | } |
| | | } |
| | | } |
| | | </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 { |
| | | padding: 20px 16px; |
| | | border: 1px solid #c3c6cd; |
| | | border-radius: 2px; |
| | | |
| | | .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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const rules = { |
| | | name: [{ required: true, message: '请è¾å
¥' }] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾å
¬å¸' : 'æ°å»ºå
¬å¸'" :confirmWorking="subLoading" :visible.sync="isShowModal" |
| | | width="600px" @close="close" @confirm="handleSub"> |
| | | <div class="main"> |
| | | <div class="main_content"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <div class="m_title">æµæ°´ä¿¡æ¯</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-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="aaa"> |
| | | <el-date-picker type="daterange" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="è´¦åç¼å·" prop=""> |
| | | <el-input type="text" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºæ¶éé¢" prop=""> |
| | | <el-input type="text" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="宿¶éé¢" prop=""> |
| | | <el-input type="text" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop=""> |
| | | <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=""> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option :value="0" label="å¦"></el-option> |
| | | <el-option :value="1" label="æ¯"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å
¥è´¦æ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.aaa" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop=""> |
| | | <el-input type="textarea" :rows="4" class="w400" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <!-- --> |
| | | <div class="table_wrap"> |
| | | <div class="head"> |
| | | <div class="title">è´¦åéä»¶</div> |
| | | <el-button type="primary">æ·»å éä»¶</el-button> |
| | | </div> |
| | | <el-table :data="list" stripe> |
| | | <el-table-column prop="code" label="éä»¶åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="pointName" label="æä½äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="æä½æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="æä½" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span class="red cu" @click="handleDel(scope)">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { create, updateById } from '@/api/business/company' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: { |
| | | type: 2, |
| | | status: '0' |
| | | }, |
| | | cateList: [], |
| | | list: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | desc: [{ required: true, message: '请è¾å
¥' }] |
| | | }, |
| | | types: [] |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.param, 'catePId', '') |
| | | this.$set(this.param, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$set(this.param, 'imgurl', file.imgurl) |
| | | this.$set(this.param, 'imgurlfull', file.imgurlfull) |
| | | }, |
| | | handleDel(row) { |
| | | this.list.splice(row.$index, 1) |
| | | |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .main { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | padding-top: 20px; |
| | | |
| | | .main_content { |
| | | flex: 1; |
| | | margin-right: 20px; |
| | | |
| | | .m_title { |
| | | font-weight: 500; |
| | | margin-bottom: 12px; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .el-form-item { |
| | | width: 33.33%; |
| | | box-sizing: border-box; |
| | | padding: 0 12px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_house { |
| | | width: 420px; |
| | | padding: 24px 12px; |
| | | border: 1px solid #c3c6cd; |
| | | border-radius: 2px; |
| | | |
| | | .title { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | margin-bottom: 30px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .head { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-bottom: 20px; |
| | | |
| | | div { |
| | | font-weight: 500; |
| | | } |
| | | } |
| | | .table_wrap{ |
| | | border: 1px solid #e2e2e2; |
| | | border-radius: 2px; |
| | | padding: 12px; |
| | | } |
| | | </style> |
| | |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | <el-button @click="handleEdit()" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="code" label="shou" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="å
¬å¸ç®ä»" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="纳ç¨è¯å«å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="modelNo" label="å
¬å¸å°å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="æ¶æ¯è´¦æ·æ°é" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <el-table-column prop="" label="客æ·åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ååç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åºå·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="è´¦å·ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æ¶æ¯ç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åçéé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æ¶æ¬¾æ¹å¼" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å
¥è´¦æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <!-- <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> --> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | v-permissions="['business:category:delete']">鿬¾</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/companyEdit.vue' |
| | | import Edit from './components/paymentsEdit.vue' |
| | | import { companyGetList, deleteById } from '@/api/business/company' |
| | | export default { |
| | | components: { |
| | |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'æ¶æ¯æ¡ç®' |
| | | label: '客æ·åç§°' |
| | | }, |
| | | { |
| | | filed: 'name', |
| | | type: 'select', |
| | | label: 'æ¶æ¬¾å
¬å¸' |
| | | label: 'æ¶æ¯ç±»å' |
| | | }, |
| | | { |
| | | filed: 'name', |
| | | type: 'select', |
| | | label: 'æ¶æ¬¾æ¹å¼' |
| | | }, |
| | | { |
| | | filed: 'name', |
| | | type: 'daterange', |
| | | label: 'å
¥è´¦æ¥æ' |
| | | }, |
| | | ], |
| | | online: true |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.updateDate() |
| | | setInterval(() => { |
| | | this.updateDate() |
| | | }, 1000 * 60 * 60) |
| | | // this.updateDate() |
| | | // setInterval(() => { |
| | | // this.updateDate() |
| | | // }, 1000 * 60 * 60) |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | // this.initData() |
| | | }, |
| | | methods: { |
| | | SubSuccess(str) { |
| | |
| | | <img src="@/assets/images/bg@2x.png" class="main_bg" alt=""> |
| | | <div class="login_wrap"> |
| | | <div class="login_img"> |
| | | <div class="h2">é宿ä½ä¸å¿</div> |
| | | <div class="h3">æºæ
§ç©æµååºå®æ¶ä¸ä½åç³»ç»</div> |
| | | <!-- <div class="h2">é宿ä½ä¸å¿</div> --> |
| | | <div class="h3">æºæ
§åºé¦è¿ç»´ç®¡çç³»ç»</div> |
| | | </div> |
| | | <div class="form_wrap"> |
| | | <div class="tabs"> |
| | |
| | | <el-table-column prop="code" label="楼å®ç¼ç " min-width="80px"></el-table-column> |
| | | <el-table-column prop="area" label="建çé¢ç§¯(m²)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="cqArea" label="管çé¢ç§¯(m²)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="" label="æ¿é´æ»æ°(é´)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="" label="å¯æåæ¿æºæ°é(é´)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roomNum" label="æ¿é´æ»æ°(é´)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="roomeRentNum" label="å¯æåæ¿æºæ°é(é´)" min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywbuilding:update', 'business:ywbuilding:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | |
| | | this.$refs.operaYwBuildingWindow.getProject() |
| | | }, |
| | | editFloor(row) { |
| | | this.$refs.FloorLevelRef.getList(row.id) |
| | | this.$refs.FloorLevelRef.id = row.id |
| | | this.$refs.FloorLevelRef.getList() |
| | | this.$refs.FloorLevelRef.visible = true |
| | | }, |
| | | handleDetail(row) { |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <GlobalWindow width="900px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="æå±é¡¹ç®" prop="projectId" clearable placeholder="è¯·éæ©é¡¹ç®"> |
| | | <el-select v-model="form.projectId" filterable clearable> |
| | |
| | | <template> |
| | | <GlobalWindow title="楼å±ç®¡ç" :showConfirm="false" :visible.sync="visible" width="800px"> |
| | | <GlobalWindow title="楼å±ç®¡ç" @close="close" :showConfirm="false" :visible.sync="visible" width="800px"> |
| | | <div class="head"> |
| | | <div class="title">楼å±å表</div> |
| | | <el-button type="primary" @click="editClick()">æ°å»ºæ¥¼å±</el-button> |
| | | </div> |
| | | <el-table :data="list" stripe> |
| | | <el-table-column prop="id" label="楼å±ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="楼å±ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="楼å±åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column label="æä½" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwBuildingWindow.open('ç¼è¾æ¥¼å®', row)" icon="el-icon-edit" |
| | | <el-button type="text" @click="editClick(row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywbuilding:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | <el-button type="text" @click="handleDel(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywbuilding:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="projectName" label="æå±é¡¹ç®" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="showModal = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="showModal = false">ç¡® å®</el-button> |
| | | <el-button type="primary" :loading="subLoading" @click="onSubmit">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </GlobalWindow> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { fetchList, detailById, deleteById, create } from '@/api/project/yeFloor' |
| | | import { fetchList, detailById, deleteById, create, updateById } from '@/api/project/yeFloor' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow, Pagination }, |
| | |
| | | id: '', |
| | | visible: false, |
| | | showModal: false, |
| | | subLoading: false, |
| | | list: [], |
| | | pagination: { |
| | | pageSize: 10, |
| | |
| | | param: {}, |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥æ¥¼å±åç§°' }], |
| | | area: [{ required: true, message: '请è¾å
¥æ¥¼å±ç¼ç ' }], |
| | | code: [{ required: true, message: '请è¾å
¥æ¥¼å±ç¼ç ' }], |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | const { param, id } = this |
| | | this.subLoading = true |
| | | let fn = param.id ? updateById : create |
| | | fn({ ...param, buildingId: id }).then(res => { |
| | | this.showModal = false |
| | | this.subLoading = false |
| | | Message.success('æäº¤æå') |
| | | this.getList() |
| | | }, () => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getList(buildingId) { |
| | | const { pagination } = this |
| | | const { pagination, id } = this |
| | | // this.buildingId = |
| | | let capacity = pagination.pageSize |
| | | let page = pagination.page |
| | | fetchList({ capacity, page, model: { buildingId } }).then(res => { |
| | | this.list = res |
| | | fetchList({ capacity, page, model: { buildingId: id } }).then(res => { |
| | | this.list = res.records |
| | | }) |
| | | }, |
| | | editClick(row) { |
| | | if(row && row.id){ |
| | | if (row && row.id) { |
| | | this.title = 'ç¼è¾æ¥¼å±' |
| | | }else{ |
| | | this.param = { ...row } |
| | | } else { |
| | | this.title = 'æ°å»ºæ¥¼å±' |
| | | this.param = {} |
| | | } |
| | | this.showModal = true |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | this.$confirm('ç¡®å®å é¤è¯¥æ¥¼å±, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteById(row.id).then(res => { |
| | | Message.success('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | }, |
| | | close() { |
| | | this.$emit('success') |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <GlobalWindow width="800px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="ä½ç½®ç±»å" prop="areaType"> |
| | | <el-select v-model="form.areaType"> |
| | |
| | | <el-option label="å
Œ
±ç»´ä¿®" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥ä¿®åºå"> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="åç±»" prop="cateId"> |
| | | <el-select v-model="form.cateId"> |
| | | <el-option label="" value=""></el-option> |
| | | <el-form-item label="鿩项ç®" prop="projectId"> |
| | | <el-select v-model="form.projectId" clearable filterable @change="getBuild"> |
| | | <el-option v-for="item in projectList" :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸é¨æ¶é´" prop="getDate"> |
| | | <el-date-picker type="datetime" v-model="form.getDate" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="è¯·éæ©ä¸é¨æ¶é´"></el-date-picker> |
| | | <el-form-item label="éæ©æ¥¼å®" prop="buildingId"> |
| | | <el-select v-model="form.buildingId" clearable filterable @change="changeBuild"> |
| | | <el-option v-for="item in buildList" :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="éæ©æ¥¼å±" prop="floorId"> |
| | | <el-select v-model="form.floorId"> |
| | | <el-option v-for="item in levelList" clearable filterable :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.areaType == 0" label="éæ©æ¿é´" prop="roomId"> |
| | | <el-select v-model="form.roomId" clearable filterable> |
| | | <el-option v-for="item in roomList" :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»" prop="cateId"> |
| | | <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="è¯·éæ©å·¡æ£åºå" clearable :options="cateList" |
| | | :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList' |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸é¨æ¶é´" v-if="form.areaType == 0" prop="getDate"> |
| | | <el-date-picker type="datetime" v-model="form.getDate" format="yyyy-MM-dd HH:mm" |
| | | value-format="yyyy-MM-dd HH:mm:ss" placeholder="è¯·éæ©ä¸é¨æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç°åºå¾ç"> |
| | | <div class="file_list"> |
| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æ
åµè¯´æ" prop="content"> |
| | | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请è¾å
¥æ
åµè¯´æ" v-trim /> |
| | | <el-form-item label="æè¿°" prop="content"> |
| | | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请è¾å
¥" :maxlength="300" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- --> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { Loading } from 'element-ui' |
| | | import { Loading, Message } from 'element-ui' |
| | | import { getProjectList } from '@/api/project/ywProject' |
| | | import { getBuildList } from '@/api/project/ywBuilding' |
| | | import { getRoomList } from '@/api/project/ywRoom' |
| | | import { fetchList } from '@/api/project/yeFloor' |
| | | import { fetchList as getCateList } from '@/api/business/category.js' |
| | | import { rules } from './config' |
| | | export default { |
| | | name: 'OperaYwWorkorderWindow', |
| | | extends: BaseOpera, |
| | |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | floor: '', |
| | | isdeleted: '', |
| | | title: '', |
| | | remark: '', |
| | |
| | | getDate: '', |
| | | projectId: '', |
| | | buildingId: '', |
| | | floorId: '', |
| | | roomId: '', |
| | | userId: '', |
| | | phone: '', |
| | |
| | | }, |
| | | loadingInstance: null, |
| | | // éªè¯è§å |
| | | rules: { |
| | | }, |
| | | rules, |
| | | projectList: [], |
| | | buildList: [], |
| | | levelList: [], |
| | | roomList: [], |
| | | cateList: [], |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | | fileList: [], |
| | | uploadData: { |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | 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) { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.getProject() |
| | | this.getCate() |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | }) |
| | | }, |
| | | getProject() { |
| | | getProjectList({}).then(res => { |
| | | this.projectList = res |
| | | }) |
| | | }, |
| | | getBuild(projectId) { |
| | | this.$set(this.form, 'buildingId', '') |
| | | this.$set(this.form, 'floorId', '') |
| | | this.$set(this.form, 'roomId', '') |
| | | getBuildList({ projectId }).then(res => { |
| | | this.buildList = res |
| | | }) |
| | | }, |
| | | changeBuild(e) { |
| | | this.$set(this.form, 'floorId', '') |
| | | this.$set(this.form, 'roomId', '') |
| | | this.getLevel(e) |
| | | this.getRoom(e) |
| | | }, |
| | | getLevel(buildingId) { |
| | | fetchList({ model: { buildingId }, capacity: 9999, page: 1 }).then(res => { |
| | | this.levelList = res.records |
| | | }) |
| | | }, |
| | | getRoom(buildingId) { |
| | | const { form } = this |
| | | getRoomList({ buildingId }).then(res => { |
| | | this.roomList = res |
| | | }) |
| | | }, |
| | | changeSel(e) { |
| | | if(e && e.length == 2){ |
| | | this.$set(this.form, 'cateId', e[1]) |
| | | }else{ |
| | | this.$set(this.form, 'cateId', '') |
| | | } |
| | | |
| | | }, |
| | | getCate() { |
| | | getCateList({ |
| | | model: { type: 3 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | }) |
| | | }, |
| | | 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 |
| | | } |
| | | if (this.fileList.length > 8) return Message.warning('ç°åºå¾çä¸è½è¶
è¿9å¼ ') |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | |
| | | }, |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | }, |
| | | uploadAvatarSuccess (file) { |
| | | uploadAvatarSuccess(file) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | |
| | | // this.$set(this.param, 'faceImg', file.imgurl) |
| | | // this.$set(this.param, 'faceImgUrl', file.imgurlfull) |
| | | }, |
| | | handleDelImg (i) { |
| | | handleDelImg(i) { |
| | | this.fileList.splice(i, 1) |
| | | }, |
| | | close(){ |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | |
| | | .file_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | .avatar-uploader{ |
| | | |
| | | .avatar-uploader { |
| | | width: 92px; |
| | | height: 92px; |
| | | display: flex; |
| | |
| | | align-items: center; |
| | | border: 1px dashed #d9d9d9; |
| | | } |
| | | |
| | | .item { |
| | | width: 92px; |
| | | max-height: 92px; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const rules = { |
| | | content: [{ required: true, message: '请è¾å
¥' }], |
| | | |
| | | areaType: [{ required: true, message: 'è¯·éæ©' }], |
| | | projectId: [{ required: true, message: 'è¯·éæ©' }], |
| | | buildingId: [{ required: true, message: 'è¯·éæ©' }], |
| | | floorId: [{ required: true, message: 'è¯·éæ©' }], |
| | | roomId: [{ required: true, message: 'è¯·éæ©' }], |
| | | } |