Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
| | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" width="800px" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" width="100%" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getDetail(1)" @clear="clear" /> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="pointName" label="å·¡æ£ç¹åç§°" min-width="100" show-overflow-tooltip /> |
| | |
| | | <el-table-column prop="" label="å·¡æ£éä»¶" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <div class="value" v-if="row.multifileList != null && row.multifileList.length"> |
| | | <div v-for="item in row.multifileList" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <div v-for="item in row.multifileList.slice(0, 1)" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls preload="auto" |
| | | style="width: 60px;height: 60px;object-fit: contain;" :src="item.fileurlFull" /> |
| | | <el-image v-else-if="item.fileurlFull" style="width:60px; height: 60px" :src="item.fileurlFull" |
| | | :preview-src-list="[item.fileurlFull]"> |
| | | :preview-src-list="row.multifileList.map(item1 => item1.fileurlFull)"> |
| | | </el-image> |
| | | </div> |
| | | </div> |
| | |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | this.tableData.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | |
| | | label="宿¶/ä»éé¢"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="needReceivableFee" |
| | | label="éæ¶/ä»éé¢"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <el-tag type="success" v-if="row.needReceivableFee > 0">æ¶</el-tag> |
| | | <el-tag type="warning" v-if="row.needReceivableFee < 0">ä»</el-tag> |
| | | <span>{{Math.abs(row.needReceivableFee)}}</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="receivableFee" |
| | | prop="actPayDate" |
| | | label="åºæ¶/仿¥æ"> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="buildingName" label="楼å®åç§°" show-overflow-tooltip /> |
| | | <el-table-column label="楼å±/æ¿å·" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.floorName}}{{row.roomNum}} |
| | | {{row.floorName}}/{{row.roomNum}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="area" label="é¢ç§¯" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="é¢ç§¯" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.area}}ã¡ |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="title">éç§ä¿¡æ¯</div> |
| | |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">åè®®ç¾è®¢æ¥æ</div> |
| | | <div class="val">{{ info.signDate }}ã¡</div> |
| | | <div class="val">{{ info.signDate }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">éç§åå </div> |
| | |
| | | <div class="tab" :class="{ active: billType === 1 }" @click="tabsClick(1)">龿仿¬¾è´¦å</div> |
| | | </div> |
| | | <div class="btns"> |
| | | <el-button :disabled="ids.length === 0" @click="batchCall">æ¹éå¬ç¼´</el-button> |
| | | <el-button :disabled="ids.length === 0" @click="batchCall" v-if="billType === 0">æ¹éå¬ç¼´</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange" stripe> |
| | |
| | | </div> |
| | | <div class="main_right_rc"> |
| | | <div class="main_right_rc_title">彿¥æ¥ç¨ï¼{{dataList.length}}ï¼</div> |
| | | <div class="main_right_rc_list"> |
| | | <div class="main_right_rc_list" v-loading="loading"> |
| | | <div class="main_right_rc_list_row" v-for="(item, index) in dataList" :key="index"> |
| | | <div class="top"> |
| | | <div class="top_left"> |
| | |
| | | nian: '', |
| | | yue: '', |
| | | obj: {}, |
| | | dataList: [] |
| | | dataList: [], |
| | | loading: false |
| | | } |
| | | }, |
| | | components: { CommonFunctions, Calendar }, |
| | |
| | | }) |
| | | }, |
| | | clickDay(e) { |
| | | this.loading = true |
| | | let date = e.replace("/\\//g", "-") |
| | | let arr = this.markDateMore.filter(item => { |
| | | if (item.date === date) { |
| | |
| | | } else { |
| | | this.dataList = [] |
| | | } |
| | | this.loading = false |
| | | }, |
| | | // è·åæ¥ç¨ |
| | | getMonthNoticess() { |
| | |
| | | } |
| | | }, |
| | | getDetail() { |
| | | this.this.activeTabs = 0 |
| | | this.activeTabs = 0 |
| | | const { id } = this |
| | | detailById(id).then(res => { |
| | | this.info = res |
| | |
| | | floorId: '', |
| | | roomId: '', |
| | | |
| | | supplier: [], |
| | | supplier: '', |
| | | buyDate: '', |
| | | content: '', |
| | | supplierLinker: '', |
| | |
| | | created() { |
| | | this.initData() |
| | | this.getProjectLists() |
| | | console.log(this.userInfo) |
| | | }, |
| | | methods: { |
| | | getHouseVal(e) { |
| | |
| | | width="100%"> |
| | | <div class="right"> |
| | | <div class="right_head"> |
| | | <span>{{info.roomNum}}</span> |
| | | <el-tag type="success" v-if="info.leaseStatus === 0">å¾
ç§èµ</el-tag> |
| | | <el-tag type="success" v-if="info.leaseStatus === 1">å·²ç§èµ</el-tag> |
| | | <el-tag type="success" v-if="info.leaseStatus === 2">æªå¼å¯ç§èµ</el-tag> |
| | | <span class="right_head_title">{{info.roomNum}}</span> |
| | | <el-tag type="info" v-if="info.leaseStatus == 0">å¾
ç§èµ</el-tag> |
| | | <el-tag type="success" v-if="info.leaseStatus == 1">å·²ç§èµ</el-tag> |
| | | <el-tag type="info" v-if="info.leaseStatus == 2">æªå¼å¯ç§èµ</el-tag> |
| | | </div> |
| | | <div class="right_cate"> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="renterName" |
| | | label="客æ·åç§°"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | {{row.renterName}} |
| | | <el-tag type="success" v-if="row.status === 1">å½åç§æ·</el-tag> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="startDate" |
| | |
| | | value: 'id', |
| | | children: 'childCategoryList' |
| | | }" /> |
| | | <el-select v-model="form.status" style="width: 150px; margin-right: 15px;" placeholder="å·¥åç¶æ"> |
| | | <el-option label="å¯ç¨" :value="0"></el-option> |
| | | <el-option label="ç¦ç¨" :value="1"></el-option> |
| | | <el-select v-model="form.dealStatus" style="width: 150px; margin-right: 15px;" placeholder="å·¥åç¶æ"> |
| | | <el-option label="å¾
ææ´¾" :value="0"></el-option> |
| | | <el-option label="å·²ææ´¾" :value="1"></el-option> |
| | | <el-option label="å·²å¤ç" :value="2"></el-option> |
| | | </el-select> |
| | | <el-button type="primary" @click="getFetchList">æ¥è¯¢</el-button> |
| | | <el-button @click="clear">æ¸
空</el-button> |
| | | </div> |
| | | <el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('æ°å»ºå·¥å')">æ°å¢å·¥å</el-button> |
| | | <el-button type="primary" @click="addWorkOrder">æ°å¢å·¥å</el-button> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | |
| | | </el-card> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="èµäº§ä¿¡æ¯" name="fourth"> |
| | | <div class="xm"> |
| | | <el-card> |
| | | <div slot="header" class="clearfix"> |
| | | <span>èµäº§æ¸
å</span> |
| | | </div> |
| | | <div class="xm_table"> |
| | | <div class="xm_table_search"> |
| | | <div class="xm_table_search_left"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥èµäº§åç§°/ç¼ç " style="width: 200px; margin-right: 15px;"></el-input> |
| | | <el-select v-model="value" style="width: 200px; margin-right: 15px;" placeholder="èµäº§åç±»"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button type="primary" @click="getPropertyLists">æ¥è¯¢</el-button> |
| | | <el-button @click="clear">æ¸
空</el-button> |
| | | </div> |
| | | <el-button type="primary" @click="$refs.newMaterial.open('æ°å»ºç©æ')">æ°å¢</el-button> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | v-loading="loading" |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="code" |
| | | label="èµäº§ç¼ç "> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="èµäº§åç§°"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="qrcode" |
| | | label="æ¡ç "> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="brand" |
| | | label="åç"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="attr" |
| | | label="è§æ ¼åå·"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="unitName" |
| | | label="åä½"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åºåæ°é"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.maxStock }} ~ {{ scope.row.minStock }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="xm_table_f"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="pageTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | |
| | | areaIds: [], |
| | | cateId: '', |
| | | status: '', |
| | | name: '' |
| | | name: '', |
| | | dealStatus: '' |
| | | }, |
| | | cateList: [], |
| | | categaryList: [], |
| | |
| | | methods: { |
| | | open (title, id) { |
| | | this.title = title |
| | | this.activeName = 'houseinfo' |
| | | this.houseId = id |
| | | detailById(id) |
| | | .then(res => { |
| | |
| | | handleEdit(row) { |
| | | this.showEdit1 = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.param.projectId = this.info.projectId |
| | | this.$refs.EditRef.param.rooms = [this.info.projectId, this.info.buildingId, this.info.floor, this.info.id] |
| | | this.$refs.EditRef.isShowModal = true |
| | | this.$refs.EditRef.changeProject() |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | |
| | | this.$refs.DetailRef.visible = true |
| | | this.$refs.DetailRef.id = row.id |
| | | this.$refs.DetailRef.getDetail() |
| | | }) |
| | | }, |
| | | addWorkOrder() { |
| | | this.$refs.operaYwWorkorderWindow.open('æ°å»ºå·¥å', { |
| | | rooms: [this.info.projectId, this.info.buildingId, this.info.floor, this.info.id], |
| | | areaType: 0, |
| | | content: '' |
| | | }) |
| | | }, |
| | | // è·å设å¤ç¶æ |
| | |
| | | this.form.status = '' |
| | | this.form.areaIds = [] |
| | | this.form.cateId = '' |
| | | this.form.dealStatus = '' |
| | | this.form.name = '' |
| | | if (this.propsName === 'project') { |
| | | this.getTenantContract() |
| | |
| | | capacity: this.pageTotal, |
| | | page: this.page, |
| | | model: { |
| | | roomIds: [this.houseId], |
| | | roomId: this.houseId, |
| | | code: this.form.code |
| | | } |
| | | }).then(res => { |
| | |
| | | this.form.cateId = '' |
| | | this.form.status = '' |
| | | this.form.name = '' |
| | | this.form.dealStatus = '' |
| | | this.propsName = tab._props.name |
| | | if (tab._props.name === 'project') { |
| | | this.getTenantContract() |
| | |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | span { |
| | | .right_head_title { |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | color: black; |
| | |
| | | <el-table-column prop="feeArea" label="计费é¢ç§¯(m²)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="" label="ç§èµç¶æ" min-width="80px"> |
| | | <template v-slot="{row}"> |
| | | <span v-if="row.leaseStatus == 0">å¾
ç§</span> |
| | | <span v-else-if="row.leaseStatus == 1">å·²ç§</span> |
| | | <span v-else>-</span> |
| | | <el-tag type="info" v-if="row.leaseStatus == 0">å¾
ç§</el-tag> |
| | | <el-tag type="success" v-else-if="row.leaseStatus == 1">å·²ç§</el-tag> |
| | | <el-tag type="info" v-else-if="row.leaseStatus == 2">æªå¼å¯ç§èµ</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="isInvestment" label="æåç¶æ" min-width="60px"> |
| | |
| | | </div> |
| | | <div class="xm_one_row"> |
| | | <span>åºç§ç</span> |
| | | <span>{{(projectNums.leaseRoomAmount / projectNums.investmentRoomAmount).toFixed(2)}}%</span> |
| | | <span>{{rentalRate()}}%</span> |
| | | <span>å¾
ç§é¢ç§¯ï¼{{projectNums.investmentArea - projectNums.leaseArea}}m²</span> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="xm_one_row"> |
| | | <span>åºç§ç</span> |
| | | <span>{{(projectNums.leaseRoomAmount / projectNums.investmentRoomAmount).toFixed(2)}}%</span> |
| | | <span>{{rentalRate()}}%</span> |
| | | <span>å¾
ç§é¢ç§¯ï¼{{projectNums.investmentArea - projectNums.leaseArea}}m²</span> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="xm_info_row" style="width: 25%; margin-top: 15px;"> |
| | | <span>建çé¢ç§¯</span> |
| | | <span>{{buildingInfo.cqArea}}ã¡</span> |
| | | <span>{{buildingInfo.area}}ã¡</span> |
| | | </div> |
| | | <div class="xm_info_row" style="width: 25%; margin-top: 15px;"> |
| | | <span>计ç§é¢ç§¯</span> |
| | |
| | | <el-table-column |
| | | label="ååç¼å·"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text">{{row.code}}</el-button> |
| | | <el-button type="text" @click="$refs.ContractDetailRef.open('åå详æ
', row.id)">{{row.code}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" /> |
| | | <!-- æ°å»ºè®¾å¤ --> |
| | | <Edit v-if="showEdit1" ref="EditRef" @success="getDevicePage" @close="showEdit1 = false" /> |
| | | <!-- åå详æ
--> |
| | | <ContractDetail ref="ContractDetailRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import Detail from '../workorder/components/detail' |
| | | import { fetchList as devicePage, getDeviceCateData, getDeviceStatus } from '@/api/Inspection/device' |
| | | import Edit from '../operation/components/deviceEdit' |
| | | import ContractDetail from '../contract/components/contractDetail' |
| | | export default { |
| | | name: 'index', |
| | | components: { OperaYwWorkorderWindow, Detail, Edit }, |
| | | components: { OperaYwWorkorderWindow, Detail, Edit, ContractDetail }, |
| | | data() { |
| | | return { |
| | | showDetail: false, |
| | |
| | | if (!value) return true; |
| | | return data.name.indexOf(value) !== -1; |
| | | }, |
| | | // åºç§ç |
| | | rentalRate() { |
| | | return ((this.projectNums.leaseArea / this.projectNums.investmentArea) * 100).toFixed(2) |
| | | }, |
| | | // å¤ææ¿æå®½åº¦ |
| | | ifWidth(num) { |
| | | if (num >= 0 && num <= 100) { |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="exportExcel">导åº</el-button></li> |
| | | <!-- <li><el-button type="primary" @click="exportExcel">导åº</el-button></li>--> |
| | | </ul> |
| | | <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" 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="name" label="ç©æåç±»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="æä½" |
| | | min-width="120" fixed="right"> |
| | |
| | | methods: { |
| | | handleEdit(row) { |
| | | this.isShowEdit = true |
| | | let str = row && row.id ? 'ç¼è¾èµäº§åç±»' : 'æ°å»ºèµäº§åç±»' |
| | | let str = row && row.id ? 'ç¼è¾ç©æåç±»' : 'æ°å»ºç©æåç±»' |
| | | this.$nextTick(() => { |
| | | this.$refs.CateEditRef.open(str) |
| | | this.$refs.CateEditRef.getList() |
| | |
| | | <el-button>导å
¥</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <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="code" label="ç©æç¼ç " min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="ç©æåç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="qrcode" label="æ¡ç " min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="brand" label="åç" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="attr" label="è§æ ¼åå·" min-width="100" show-overflow-tooltip /> |
| | |
| | | rules, |
| | | storeList: [], |
| | | list: [], |
| | | StoreTypeOps: StoreTypeOps.filter(i => i.type == 1), |
| | | StoreTypeOps: StoreTypeOps.filter(i => i.type == 1 && i.id != 10), |
| | | |
| | | dataList: [], |
| | | } |
| | |
| | | { name: 'é¢ç¨éå', id: 1, type: 0 }, |
| | | { name: 'åºåè°æ´', id: 2, type: 0 }, |
| | | { name: 'å
¶å®å
¥åº', id: 3, type: 0 }, |
| | | // { name: 'ççå
¥åº', id: 4, type: 0 }, |
| | | { name: 'ççå
¥åº', id: 4, type: 0 }, |
| | | |
| | | { name: 'é¢ç¨åºåº', id: 5, type: 1 }, |
| | | { name: 'ä»åºåºå', id: 6, type: 1 }, |
| | | { name: 'è°æ´åºåº', id: 7, type: 1 }, |
| | | { name: 'éè´åºåº', id: 8, type: 1 }, |
| | | { name: 'å
¶å®åºåº', id: 9, type: 1 }, |
| | | // { name: 'çåºåºåº', id: 10, type: 1 }, |
| | | { name: 'çäºåºåº', id: 10, type: 1 }, |
| | | ] |
| | | export const rules = { |
| | | warehouseId: [{ required: true, message: 'è¯·éæ©', trigger: 'blur' }], |
| | |
| | | <el-table-column prop="materialUnitName" label="åä½" show-overflow-tooltip /> |
| | | <el-table-column prop="warehouseName" label="æå¨ä»åº" show-overflow-tooltip /> |
| | | <el-table-column prop="stock" label="è´¦é¢æ°é" show-overflow-tooltip /> |
| | | <el-table-column prop="actStock" label="çç¹æ°é" show-overflow-tooltip /> |
| | | <el-table-column label="çç¹æ°é" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <span style="color: red;" v-if="row.type === 1">{{row.actStock}}</span> |
| | | <span style="color: green;" v-else-if="row.type === 2">{{row.actStock}}</span> |
| | | <span v-else>{{row.actStock}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" show-overflow-tooltip /> |
| | | </el-table> |
| | | </div> |
| | |
| | | <el-form :model="form" label-position="top" ref="form" :rules="rules"> |
| | | <div class="list"> |
| | | <el-form-item label="ç©æç¼ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="ä¸è¾å
¥ç³»ç»ä¼èªå¨ç¼ç " v-trim /> |
| | | <el-input v-model="form.code" :disabled="form.id" placeholder="ä¸è¾å
¥ç³»ç»ä¼èªå¨ç¼ç " v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ç©æåç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥" v-trim /> |
| | |
| | | :action="uploadImgUrl" |
| | | :file-list="fileList" |
| | | :data="uploadData" |
| | | :limit="1" |
| | | list-type="picture-card" |
| | | :on-exceed="exceed" |
| | | :on-success="uploadAvatarSuccess" |
| | | :on-remove="dele"> |
| | | <i class="el-icon-plus"></i> |
| | |
| | | } |
| | | }) |
| | | }, |
| | | exceed() { |
| | | this.$message.warning('åªè½ä¸ä¼ ä¸å¼ å¾çï¼') |
| | | }, |
| | | getCateVal(e) { |
| | | this.form.parentCateId = e[0] |
| | | this.form.cateId = e[1] |
| | |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [{ required: true, message: 'ä»åºåç§°ä¸è½ä¸ºç©º', trigger: 'blur' }] |
| | | name: [{ required: true, message: 'ä»åºåç§°ä¸è½ä¸ºç©º', trigger: 'blur' }], |
| | | userId: [{ required: true, message: 'è´è´£äººä¸è½ä¸ºç©º', trigger: 'blur' }] |
| | | }, |
| | | userList: [] |
| | | } |
| | |
| | | label: 'åºåºç±»å', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: StoreTypeOps.filter(i => i.type == 0) |
| | | options: StoreTypeOps.filter(i => i.type == 1) |
| | | }, |
| | | ], |
| | | online: true |
| | |
| | | <el-button @click="handleEx()" v-permissions="['business:ywoutinboundrecord:exportExcel']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="doneDate" label="åæ®æ¥æ" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="doneDate" label="åæ®æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeFront" label="ç©æåç±»" min-width="120" show-overflow-tooltip> |
| | |
| | | methods: { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.fileList = [] |
| | | this.visible = true |
| | | this.getProject() |
| | | this.getCate() |
| | |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | |
| | | openWT() { |
| | | getByWorkorderId(this.id) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.$refs.problemReportingDetails.open('é®é¢ä¸æ¥è¯¦æ
', res) |
| | | }) |
| | | }, |
| | |
| | | :file-list="form.workOrderFileList" |
| | | accept=".png,.jpg,.jpeg,.PNG,.JPG" |
| | | :on-success="getFile" |
| | | :data="{ folder: 'YW_PROBLEM' }" |
| | | :data="{ folder: 'YW_WORKORDER' }" |
| | | list-type="picture-card"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | |
| | | <div class="title">é®é¢è¯¦æ
</div> |
| | | <el-tag style="margin-left: 10px;" v-if="form.dealStatus === 0">å¾
å¤ç</el-tag> |
| | | <el-tag style="margin-left: 10px;" v-if="form.dealStatus === 1">已转工å</el-tag> |
| | | <el-tag style="margin-left: 10px;" v-if="form.dealStatus === 2">å·²å
³é</el-tag> |
| | | <el-tag style="margin-left: 10px;" type="info" v-if="form.dealStatus === 2">å·²å
³é</el-tag> |
| | | </div> |
| | | <el-button @click="handleDetail" v-if="form.dealStatus === 1">æ¥çå·¥å</el-button> |
| | | <el-button @click="handleDetail" v-if="form.dealStatus === 1">æ¥çå·¥å{{form.workorderId}}</el-button> |
| | | </div> |
| | | <div class="wt_content"> |
| | | <div class="wt_content_row" style="width: 25%;"> |
| | |
| | | </div> |
| | | <div class="wt_head"> |
| | | <div class="wt_head_title"> |
| | | <div class="title">é®é¢è¯¦æ
</div> |
| | | <div class="title">å¤çç»æ</div> |
| | | </div> |
| | | </div> |
| | | <div class="wt_content"> |
| | |
| | | </div> |
| | | </div> |
| | | <!-- å·¥å详æ
--> |
| | | <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" /> |
| | | <Detail v-if="showDetail" ref="DetailRef1" @close="showDetail = false" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | handleDetail() { |
| | | this.showDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DetailRef.visible = true |
| | | this.$refs.DetailRef.id = this.form.workorderId |
| | | this.$refs.DetailRef.getDetail() |
| | | this.$refs.DetailRef1.visible = true |
| | | this.$refs.DetailRef1.id = this.form.workorderId |
| | | this.$refs.DetailRef1.getDetail() |
| | | }) |
| | | }, |
| | | returnText(status) { |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe> |
| | | <el-table-column prop="remark" label="æè¿°" min-width="70px"></el-table-column> |
| | | <el-table-column prop="content" label="æè¿°" min-width="70px"></el-table-column> |
| | | <el-table-column prop="position" label="ä½ç½®" min-width="100px"></el-table-column> |
| | | <el-table-column label="ç°åºå¾ç" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | { |
| | | "navigationBarTitleText" : "ä»»å¡ä¸å¿" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/polling/empty", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "æ«ç å·¡æ£" |
| | | } |
| | | }
|
| | | ],
|
| | | "globalStyle": {
|
| | |
| | | loginPost,
|
| | | getUserInfo,
|
| | | sendSMsPost,
|
| | | ywWxAuthorize, |
| | | |
| | | ywWxAuthorize,
|
| | |
|
| | | getRecordByUserPoint
|
| | | } from '@/api'
|
| | | import {
|
| | |
| | | form: {
|
| | | phone: '',
|
| | | code: ''
|
| | | }, |
| | | },
|
| | | ywinfo: {},
|
| | | downTime: 0,
|
| | | code: ''
|
| | |
| | | },
|
| | | onLoad(option) {
|
| | | console.log('onLoad');
|
| | | // https://zhcg.fnwtzx.com/#/pages/login?type=0&ywid=ywid |
| | | const ywinfo = uni.getStorageSync('ywinfo') || {} |
| | | if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) { |
| | | this.ywinfo = ywinfo |
| | | uni.setStorageSync('ywinfo', {}) |
| | | // https://zhcg.fnwtzx.com/#/pages/login?type=0&ywid=ywid
|
| | | const ywinfo = uni.getStorageSync('ywinfo') || {}
|
| | | if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
|
| | | this.ywinfo = ywinfo
|
| | | uni.setStorageSync('ywinfo', {})
|
| | | }
|
| | | if (option.ywid || option.ywid == 0) {
|
| | | uni.setStorageSync('ywinfo', {
|
| | |
| | | code: code || this.code
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | | console.log('res', res);
|
| | | // console.log('res', res);
|
| | | that.$store.commit('setOpenId', res.data.openid)
|
| | | if (res.data.token && res.data.token != '') {
|
| | | that.$store.commit('setToken', res.data.token)
|
| | |
| | | that.$store.commit('setUserInfo', ress.data)
|
| | | })
|
| | | const ywinfo = this.ywinfo
|
| | | if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) { |
| | | getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => { |
| | | if(res.data && res.data.id){ |
| | | uni.redirectTo({ |
| | | url: "/pages/polling/point?id=" + res.data.id |
| | | }) |
| | | } |
| | | if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
|
| | | getRecordByUserPoint({
|
| | | pointCode: ywinfo.ywid
|
| | | }).then(res => {
|
| | | if (res.data && res.data.id) {
|
| | | uni.redirectTo({
|
| | | url: "/pages/polling/point?id=" + res.data.id
|
| | | })
|
| | | } else {
|
| | | uni.redirectTo({
|
| | | url: "/pages/polling/empty"
|
| | | })
|
| | | }
|
| | | })
|
| | | } else {
|
| | | setTimeout(() => {
|
| | |
| | | })
|
| | | } else {
|
| | | // let url = 'https://zhcg.fnwtzx.com/yunwei_h5'
|
| | | // const appID = 'wx95ac1efb67f0330d' |
| | | let url = 'https://dmtest.ahapp.net/yunwei_h5' |
| | | // const appID = 'wx95ac1efb67f0330d'
|
| | | let url = 'https://dmtest.ahapp.net/yunwei_h5'
|
| | | const appID = 'wx4d7c10bdec51942b'
|
| | | let uri = encodeURIComponent(url)
|
| | | let authURL =
|
| | |
| | | this.setToken(res.data)
|
| | | this.showToast('ç»å½æå')
|
| | | getUserInfo().then(ress => {
|
| | | this.setUserInfo(ress.data) |
| | | const ywinfo = this.ywinfo |
| | | if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) { |
| | | getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => { |
| | | getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => { |
| | | if(res.data && res.data.id){ |
| | | uni.redirectTo({ |
| | | url: "/pages/polling/point?id=" + res.data.id |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | } else { |
| | | uni.redirectTo({ |
| | | url: "/pages/index" |
| | | }) |
| | | this.setUserInfo(ress.data)
|
| | | const ywinfo = this.ywinfo
|
| | | if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
|
| | | // getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
|
| | | getRecordByUserPoint({
|
| | | pointCode: ywinfo.ywid
|
| | | }).then(res => {
|
| | | if (res.data && res.data.id) {
|
| | | uni.redirectTo({
|
| | | url: "/pages/polling/point?id=" + res.data.id
|
| | | })
|
| | | } else {
|
| | | uni.redirectTo({
|
| | | url: "/pages/polling/empty"
|
| | | })
|
| | | }
|
| | | })
|
| | | // })
|
| | | } else {
|
| | | uni.redirectTo({
|
| | | url: "/pages/index"
|
| | | })
|
| | | }
|
| | | })
|
| | | }
|
| | |
| | | <template v-if="item.status == 1">
|
| | | <view class="line">
|
| | | <view class="la">å·¡æ£ç»æï¼</view>
|
| | | <view class="val" :class="{ red: item.dealStatus == 1 }">{{ item.dealStatus == 0 ? 'æ£å¸¸' : 'å¼å¸¸' }}</view>
|
| | | <view class="val" :class="{ red: item.dealStatus == 1 }">{{ item.dealStatus == 0 ? 'æ£å¸¸' : item.dealStatus == 1 ? 'å¼å¸¸' : '-' }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">å·¡æ£æ¶é´ï¼</view>
|
| | |
| | | this.info = res.data
|
| | | let time = new Date(res.data.startDate).getTime()
|
| | | console.log('res.data.startDate', new Date().getTime());
|
| | | this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1)
|
| | | this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1 || this.info.status == 2)
|
| | | })
|
| | | ywPatrolTaskRecord({
|
| | | capacity: 999,
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <image class="logo" src="@/static/side/default_empty@2x.png" mode=""></image> |
| | | <view class="btn" @click="backHome">è¿å主页</view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | }, |
| | | methods: { |
| | | backHome(){ |
| | | uni.redirectTo({ |
| | | url: '/pages/index' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .main_app{ |
| | | .logo{ |
| | | width: 272rpx; |
| | | height: 228rpx; |
| | | margin: 60% auto 0; |
| | | } |
| | | .btn{ |
| | | position: fixed; |
| | | bottom: 64rpx; |
| | | left: 40rpx; |
| | | width: 670rpx; |
| | | height: 88rpx; |
| | | background: #0068FF; |
| | | box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,104,255,0.3); |
| | | border-radius: 44rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template v-if="info.status == 1">
|
| | | <view class="line">
|
| | | <div class="la">å·¡æ£ç»æï¼</div>
|
| | | <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? 'æ£å¸¸' : 'å¼å¸¸' }}
|
| | | <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? 'æ£å¸¸' : info.dealStatus == 1 ? 'å¼å¸¸' : '-' }}
|
| | | </div>
|
| | | </view>
|
| | | <view class="line">
|
| | |
| | | id: 1,
|
| | | name: 'å¼å¸¸'
|
| | | },
|
| | | {
|
| | | id: '',
|
| | | name: 'è·³è¿'
|
| | | },
|
| | | // {
|
| | | // id: 2,
|
| | | // name: 'è·³è¿'
|
| | | // },
|
| | | ]
|
| | | ], |
| | |
|
| | |
| | | <view class="line" @click="itemClick(item)">æ§è¡æ¶é´ï¼{{ item.startDate.slice(11, 16) }} è³ {{ item.endDate.slice(11, 16) }}</view>
|
| | | <view class="line">
|
| | | <view @click="itemClick(item)">宿æ
åµï¼{{item.finishNum || 0}}/{{item.patrolNum}}</view>
|
| | | <view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1)" class="btn" @click="openSc(item)">
|
| | | <view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1 || item.status == 2)" class="btn" @click="openSc(item)">
|
| | | <image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image>
|
| | | <view>æ«ç å·¡æ£</view>
|
| | | </view>
|
| | |
| | | if (data.code === 500 || data.code === 5112) { |
| | | uni.clearStorageSync() |
| | | return uni.navigateTo({ |
| | | url: '/pages/login/login' |
| | | url: '/pages/login' |
| | | }) |
| | | } |
| | | return |
| | | return resolve(data) |
| | | } |
| | | resolve(data) |
| | | // return response.data |