9 files modified
4 files added
| New file |
| | |
| | | import http from '@/http/api.js' |
| | | |
| | | //获取报事统计数据 |
| | | export const getStatistics = (params) => { |
| | | return http.request({ |
| | | url: '/blade-taskReportForRepairs/taskReportForRepairs/getStatisticsCount', |
| | | method: 'GET', |
| | | params: { |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const getPage = (params) => { |
| | | return http.request({ |
| | | url: '/blade-taskReportForRepairs/taskReportForRepairs/page', |
| | | method: 'GET', |
| | | params: { |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | //添加 |
| | | export const save = (data) => { |
| | | return http.request({ |
| | | url: '/blade-taskReportForRepairs/taskReportForRepairs/save', |
| | | method: 'POST', |
| | | data: data |
| | | }) |
| | | } |
| | |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | |
| | | //公告 |
| | | { |
| | | "root": "subPackage/notice", |
| | |
| | | } |
| | | }, |
| | | { |
| | | "path":"views/rental", |
| | | "path": "views/csjl", |
| | | "style": { |
| | | "navigationBarTitleText": "场所记录", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | }, |
| | | { |
| | | "path": "views/rental", |
| | | "style": { |
| | | "navigationBarTitleText": "出租房管理", |
| | | "enablePullDownRefresh": false, |
| | |
| | | } |
| | | }, |
| | | { |
| | | "path":"views/addRepair", |
| | | "path": "views/addRepair", |
| | | "style": { |
| | | "navigationBarTitleText": "公共维修", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | }, |
| | | { |
| | | "path": "views/repairList", |
| | | "style": { |
| | | "navigationBarTitleText": "公共维修", |
| | | "enablePullDownRefresh": false, |
| | |
| | | "navigationBarTextStyle": "white", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "houseNumber/index", |
| | | "style": { |
| | | "navigationBarTitleText": "门牌码信息", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | } |
| | | |
| | | ] |
| | | } |
| | | |
| | |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | |
| | | }, {
|
| | | // 自定义验证函数,见上说明
|
| | | validator: (rule, value, callback) => {
|
| | | const reg = /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/
|
| | | if (reg.test(value)) { |
| | | return true |
| | | } |
| | | return false |
| | | const reg =
|
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/
|
| | | if (reg.test(value)) {
|
| | | return true
|
| | | }
|
| | | return false
|
| | | },
|
| | | message: '请输入正确的身份证号',
|
| | | // 触发器可以同时用blur和change
|
| | |
| | |
|
| | | <view class="list-btn">
|
| | | <u-button icon="edit-pen" class="btn-item" type="primary" plain text="修改"
|
| | | :disabled="item.status == 1 || item.status == 2"
|
| | | @click="pushPage(item)"></u-button>
|
| | | <u-button icon="calendar" class="btn-item" type="primary" plain text="续租"
|
| | | :disabled="item.status == 2"
|
| | | :disabled="item.status == 1 || item.status == 2" @click="pushPage(item)"></u-button>
|
| | | <u-button icon="calendar" class="btn-item" type="primary" plain text="续租" :disabled="item.status == 2"
|
| | | @click="xzHandleClick(item)"></u-button>
|
| | | <u-button icon="order" class="btn-item" type="primary" plain text="终止"
|
| | | :disabled="item.status == 1 || item.status == 2" @click="terminate(item)"></u-button>
|
| | |
| | | <u-divider text="已经到底了"></u-divider>
|
| | | </view>
|
| | |
|
| | | <u-datetime-picker :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
|
| | | <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
|
| | | @confirm="dueTimeConfirm"></u-datetime-picker>
|
| | | <u-datetime-picker :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
|
| | | <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="istPickerShow = false" :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
|
| | | @confirm="terminateTimeConfirm"></u-datetime-picker>
|
| | | <u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
|
| | | @cancel="isModelShow = false" @confirm="deleteRentalConfirm"></u-modal>
|
| | | <u-toast ref="uToast"></u-toast>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | |
| | | name: '已终止',
|
| | | value: 2
|
| | | },
|
| | | ]
|
| | | ],
|
| | | currentTime: Number(new Date()),
|
| | | currentRentInfo: {}
|
| | | }
|
| | | },
|
| | | methods: {
|
| | |
| | | const {
|
| | | code,
|
| | | data
|
| | | } = await deleteRentalInfo(this.currentRentalId) |
| | | if (code !== 200) { |
| | | uni.showToast({ |
| | | title: "删除失败", |
| | | icon: "error", |
| | | duration: 1500 |
| | | }) |
| | | return |
| | | } = await deleteRentalInfo(this.currentRentalId)
|
| | | if (code !== 200) {
|
| | | uni.showToast({
|
| | | title: "删除失败",
|
| | | icon: "error",
|
| | | duration: 1500
|
| | | })
|
| | | return
|
| | | }
|
| | | this.isModelShow = false
|
| | | this.$emit('refreshData')
|
| | |
| | | },
|
| | | xzHandleClick(item) {
|
| | | this.currentRentalId = item.housingRentalId
|
| | | this.currentRentInfo = item
|
| | | this.isPickerShow = true
|
| | | },
|
| | | async dueTimeConfirm(e) {
|
| | | // 判断当前选中的时间是否小于租房时间
|
| | | const {
|
| | | rentalTime
|
| | | } = this.currentRentInfo
|
| | | const rentDate = new Date(rentalTime).getTime()
|
| | | if (rentDate > e.value) {
|
| | | this.$refs.uToast.show({
|
| | | type: 'warning', |
| | | message: "续租时间不可小于租房时间", |
| | | position: 'top', |
| | | iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
|
| | | })
|
| | | return
|
| | | }
|
| | | const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
|
| | | const res = await updateDueTime({
|
| | | id: this.currentRentalId,
|
| | |
| | | title: "续租失败",
|
| | | icon: "error",
|
| | | duration: 1500
|
| | | }) |
| | | })
|
| | | return
|
| | | }
|
| | | this.isPickerShow = false
|
| | |
| | | this.currentRentalId = item.housingRentalId
|
| | | this.istPickerShow = true
|
| | | },
|
| | | async terminateTimeConfirm(e) {
|
| | | async terminateTimeConfirm(e) { |
| | | const { |
| | | rentalTime |
| | | } = this.currentRentInfo |
| | | const rentDate = new Date(rentalTime).getTime() |
| | | if (rentDate > e.value) { |
| | | this.$refs.uToast.show({ |
| | | type: 'warning', |
| | | message: "终止时间不可小于租房时间", |
| | | position: 'top', |
| | | iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png' |
| | | }) |
| | | return |
| | | }
|
| | | const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
|
| | | const res = await updateDueTime({
|
| | | id: this.currentRentalId,
|
| | | terminationTime: time
|
| | | }) |
| | | if (res.code !== 200) { |
| | | uni.showToast({ |
| | | title: "终止失败", |
| | | icon: "error", |
| | | duration: 1500 |
| | | }) |
| | | return |
| | | })
|
| | | if (res.code !== 200) {
|
| | | uni.showToast({
|
| | | title: "终止失败",
|
| | | icon: "error",
|
| | | duration: 1500
|
| | | })
|
| | | return
|
| | | }
|
| | | this.istPickerShow = false
|
| | | this.$emit('refreshData')
|
| | |
| | | <text class="address f-28">万达华府26栋1903室 万达华府26栋1903室</text> |
| | | </view> |
| | | <view class="content bgc-ff"> |
| | | <u-form labelPosition="left" :model="info" :rules="rules" ref="uForm" labelWidth="90" |
| | | <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90" |
| | | :labelStyle="{fontSize:'28rpx'}"> |
| | | <u-form-item label="姓名" prop="info.name" borderBottom ref="item1"> |
| | | <u-input v-model="info.title" border="none" placeholder="请输入" placeholderClass="f-28 c-99" |
| | | <u-form-item label="姓名" prop="realName" borderBottom ref="realName"> |
| | | <u-input v-model="info.realName" border="none" placeholder="请输入" placeholderClass="f-28 c-99" |
| | | inputAlign="right"></u-input> |
| | | </u-form-item> |
| | | <u-form-item label="手机" prop="info.phone" :borderBottom="false" ref="item1"> |
| | | <u-form-item label="手机" prop="phone" :borderBottom="false" ref="phone"> |
| | | <u-input v-model="info.phone" border="none" placeholder="请输入" placeholderClass="f-28 c-99" |
| | | inputAlign="right"></u-input> |
| | | </u-form-item> |
| | |
| | | |
| | | <view class="upload bgc-ff"> |
| | | <view class="f-28 mb-20">描述</view> |
| | | <u-textarea v-model="desc" placeholder="请输入内容" border="none" placeholderClass="c-99 f-26"></u-textarea> |
| | | <u-textarea v-model="info.remark" placeholder="请输入内容" border="none" |
| | | placeholderClass="c-99 f-26"></u-textarea> |
| | | <view class="mt-20"> |
| | | <u-upload :fileList="images" :previewFullImage="uploadConfig.previewFullImage" |
| | | <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage" |
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount" |
| | | :capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic"> |
| | | <view class="upload-item upload-icon flex_base"> |
| | |
| | | |
| | | |
| | | <button class="submit-btn" @click="sumitInfo">提交</button> |
| | | <button class="list-btn" @click="navigatorPage">我上报的事件</button> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import uploadMixin from "@/mixin/uploadMixin"; |
| | | import { |
| | | save |
| | | } from "@/api/task/taskReportForRepairs"; |
| | | export default { |
| | | mixins: [uploadMixin], |
| | | data() { |
| | | return { |
| | | info: { |
| | | title: "", |
| | | content: "" |
| | | realName: "", |
| | | phone: "", |
| | | remark: "", |
| | | type: -1, |
| | | }, |
| | | rules: { |
| | | 'title': { |
| | | 'realName': { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请输入姓名', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'content': { |
| | | 'phone': { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请输入手机号', |
| | |
| | | }, |
| | | }, |
| | | desc: "", |
| | | images: [] |
| | | title: "", |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.title = option.title |
| | | uni.setNavigationBarTitle({ |
| | | title: this.title |
| | | }) |
| | | this.info.type = option.type |
| | | }, |
| | | methods: { |
| | | sumitInfo() { |
| | | |
| | | const that = this |
| | | this.$refs.form.validate().then(valid => { |
| | | if (this.form.images.length > 0) { |
| | | let urls = [] |
| | | this.form.images.forEach(e => { |
| | | urls.push(e.name) |
| | | }) |
| | | this.info.imageUrls = urls.join(",") |
| | | } |
| | | save(that.info).then(res => { |
| | | uni.showToast({ |
| | | icon: 'success', |
| | | title: '提交成功', |
| | | success() { |
| | | setTimeout(() => { |
| | | that.$u.func.globalNavigator("", "navBack") |
| | | }, 1000) |
| | | } |
| | | }) |
| | | }) |
| | | }) |
| | | }, |
| | | navigatorPage() { |
| | | let url = "/subPackage/bs/views/repairList" + "?title=" + this.title + "&type=" + this.info.type |
| | | this.$u.func.globalNavigator(url, "navTo") |
| | | } |
| | | } |
| | | } |
| | |
| | | margin: 0 30rpx; |
| | | padding: 30rpx; |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | .submit-btn { |
| | |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | |
| | | .list-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | </style> |
| | |
| | | :popupTitle="selectBusTitle" :dataLists="selectBusList" @cancel="typeShow = false" @submit="typeSelect">
|
| | | </select-bus>
|
| | | <!--出租时间选择-->
|
| | | <u-datetime-picker :closeOnClickOverlay="true" @close="rentTimeShow = false" :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
|
| | | <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="rentTimeShow = false" :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
|
| | | @cancel="rentTimeShow = false"></u-datetime-picker>
|
| | | <u-datetime-picker :closeOnClickOverlay="true" @close="dueTimeShow = false" :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
|
| | | <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="dueTimeShow = false" :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
|
| | | @cancel="dueTimeShow = false"></u-datetime-picker>
|
| | |
|
| | | <view class="bottom-tools">
|
| | |
| | | selectBusKey: '',
|
| | | typeShow: false,
|
| | | houseCode: '',
|
| | | rentId: ''
|
| | | rentId: '', |
| | | currentTime: Number(new Date())
|
| | | }
|
| | | },
|
| | | onLoad(option) {
|
| | |
| | | <template> |
| | | <view class=""> |
| | | <u-navbar height="48" :autoBack="true" safeAreaInsetTop placeholder bgColor="transparent" leftIconColor="#fff"> |
| | | <u-navbar height="48" :autoBack="true" safeAreaInsetTop placeholder bgColor="transparent" leftIconColor="#fff"> |
| | | </u-navbar> |
| | | <view class="top"> |
| | | <image class="top-img" src="/static/img/repair-bg.png" mode="aspectFill"></image> |
| | | </view> |
| | | |
| | | |
| | | <view class="container"> |
| | | <view class="c-ff f-36">请选择您需要的服务</view> |
| | | <view class="serve-box bgc-ff mb-20 flex j-c-s-b a-i-c"> |
| | | <view class="flex a-i-c"> |
| | | <u-icon name="/static/icon/nav-09.png" width="91rpx" height="70rpx"></u-icon> |
| | | <u-icon name="/static/icon/nav-09.png" width="91rpx" height="70rpx"></u-icon> |
| | | <view class="flex f-d-c ml-40"> |
| | | <text class="f-36">总申请</text> |
| | | <view class="flex a-i-c"> |
| | | <text class="f-48 c-blue fw mr-6">50</text> |
| | | <text class="f-48 c-blue fw mr-6">{{statistic.total}}</text> |
| | | <text class="f-24 c-99">件</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="flex a-i-c"> |
| | | <u-icon name="/static/icon/nav-10.png" width="91rpx" height="70rpx"></u-icon> |
| | | <u-icon name="/static/icon/nav-10.png" width="91rpx" height="70rpx"></u-icon> |
| | | <view class="flex f-d-c ml-40"> |
| | | <text class="f-36">已处理</text> |
| | | <view class="flex a-i-c"> |
| | | <text class="f-48 c-green fw mr-6">50</text> |
| | | <text class="f-48 c-green fw mr-6">{{statistic.handle}}</text> |
| | | <text class="f-24 c-99">件</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="site-box bgc-ff flex"> |
| | | <view class="flex a-i-c"> |
| | | <u-icon name="map-fill" color="#AAAAAA"></u-icon> |
| | | <text class="f-28 c-aa ml-20">当前小区:</text> |
| | | </view> |
| | | |
| | | |
| | | <text class="address f-28">万达华府26栋1903室 万达华府26栋1903室</text> |
| | | </view> |
| | | |
| | | |
| | | <view class="nav flex flex-wrap j-c-s-b"> |
| | | |
| | | <view class="nav-item" v-for="(i,k) in navList" :key="k" @click="navTo(i.path)"> |
| | | |
| | | <view class="nav-item" v-for="(i,k) in navList" :key="k" @click="navTo(i)"> |
| | | <image class="nav-item-bg" :src="i.bgImg" mode="aspectFill"></image> |
| | | <view class="nav-item-inner flex f-d-c"> |
| | | <text class="f-32 mb-30">{{i.title}}</text> |
| | | <button class="item-btn" :style="{backgroundColor:i.background}" >立即上报</button> |
| | | <button class="item-btn" :style="{backgroundColor:i.background}">立即上报</button> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | </view> |
| | | |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getStatistics |
| | | } from '@/api/task/taskReportForRepairs' |
| | | export default { |
| | | data(){ |
| | | data() { |
| | | return { |
| | | navList:[ |
| | | { |
| | | title:"公共维修", |
| | | bgImg:"/static/icon/nav-bg-06.png", |
| | | path:"addRepair", |
| | | background:"#63C875" |
| | | statistic: { |
| | | total: 0, |
| | | handle: 0, |
| | | }, |
| | | navList: [{ |
| | | title: "公共维修", |
| | | type: 1, |
| | | bgImg: "/static/icon/nav-bg-06.png", |
| | | path: "addRepair", |
| | | background: "#63C875" |
| | | }, |
| | | { |
| | | title:"居家维修", |
| | | bgImg:"/static/icon/nav-bg-07.png", |
| | | path:"", |
| | | background:"#4D98E2" |
| | | title: "居家维修", |
| | | type: 2, |
| | | bgImg: "/static/icon/nav-bg-07.png", |
| | | path: "addRepair", |
| | | background: "#4D98E2" |
| | | }, |
| | | { |
| | | title:"矛盾纠纷", |
| | | bgImg:"/static/icon/nav-bg-08.png", |
| | | path:"", |
| | | background:"#EC7E51" |
| | | title: "矛盾纠纷", |
| | | type: 3, |
| | | bgImg: "/static/icon/nav-bg-08.png", |
| | | path: "addRepair", |
| | | background: "#EC7E51" |
| | | }, |
| | | { |
| | | title:"投诉举报", |
| | | bgImg:"/static/icon/nav-bg-09.png", |
| | | path:"", |
| | | background:"#F4B862" |
| | | title: "投诉举报", |
| | | type: 4, |
| | | bgImg: "/static/icon/nav-bg-09.png", |
| | | path: "addRepair", |
| | | background: "#F4B862" |
| | | }, |
| | | |
| | | { |
| | | title: "企业商户上报", |
| | | type: 5, |
| | | bgImg: "/static/icon/nav-bg-09.png", |
| | | path: "addRepair", |
| | | background: "#F4B862" |
| | | }, |
| | | |
| | | ] |
| | | } |
| | | }, |
| | | methods:{ |
| | | navTo(path){ |
| | | if(path){ |
| | | this.$u.func.globalNavigator(path, "navTo") |
| | | computed: { |
| | | |
| | | }, |
| | | onShow() { |
| | | this.getStatistics() |
| | | }, |
| | | |
| | | methods: { |
| | | navTo(item) { |
| | | if (item.path) { |
| | | let url = item.path + "?title=" + item.title + "&type=" + item.type |
| | | this.$u.func.globalNavigator(url, "navTo") |
| | | } |
| | | |
| | | }, |
| | | |
| | | getStatistics() { |
| | | getStatistics().then(res => { |
| | | this.statistic = res.data |
| | | }) |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page{ |
| | | width:100%; |
| | | height:100%; |
| | | page { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .top{ |
| | | width:100%; |
| | | height:659rpx; |
| | | background: linear-gradient(180deg, #017BFC 0%, rgba(1,123,252,0) 100%); |
| | | |
| | | .top { |
| | | width: 100%; |
| | | height: 659rpx; |
| | | background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%); |
| | | position: fixed; |
| | | top:0; |
| | | left:0; |
| | | .top-img{ |
| | | width:100%; |
| | | height:659rpx; |
| | | top: 0; |
| | | left: 0; |
| | | |
| | | .top-img { |
| | | width: 100%; |
| | | height: 659rpx; |
| | | } |
| | | } |
| | | .container{ |
| | | width:100%; |
| | | |
| | | .container { |
| | | width: 100%; |
| | | padding: 0 30rpx; |
| | | position: fixed; |
| | | box-sizing: border-box; |
| | | top:130rpx; |
| | | left:0; |
| | | top: 130rpx; |
| | | left: 0; |
| | | z-index: 100; |
| | | .serve-box{ |
| | | width:100%; |
| | | height:213rpx; |
| | | |
| | | .serve-box { |
| | | width: 100%; |
| | | height: 213rpx; |
| | | border-radius: 8rpx; |
| | | margin-top:30rpx; |
| | | margin-top: 30rpx; |
| | | padding: 0 60rpx 0 40rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | .f-48{ |
| | | font-size:48rpx; |
| | | |
| | | .f-48 { |
| | | font-size: 48rpx; |
| | | } |
| | | .c-blue{ |
| | | color:#677CF8; |
| | | |
| | | |
| | | .c-blue { |
| | | color: #677CF8; |
| | | |
| | | } |
| | | .c-green{ |
| | | color:#30D17C; |
| | | |
| | | .c-green { |
| | | color: #30D17C; |
| | | } |
| | | .ml-40{ |
| | | margin-left:40rpx; |
| | | |
| | | .ml-40 { |
| | | margin-left: 40rpx; |
| | | } |
| | | .site-box{ |
| | | width:100%; |
| | | padding:30rpx; |
| | | |
| | | .site-box { |
| | | width: 100%; |
| | | padding: 30rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 4rpx; |
| | | .c-aa{ |
| | | color:#aaa; |
| | | |
| | | .c-aa { |
| | | color: #aaa; |
| | | } |
| | | .address{ |
| | | width:60%; |
| | | margin-left:25rpx; |
| | | |
| | | .address { |
| | | width: 60%; |
| | | margin-left: 25rpx; |
| | | } |
| | | } |
| | | .nav{ |
| | | width:100%; |
| | | .nav-item,.nav-item-bg,.nav-item-inner{ |
| | | width:330rpx; |
| | | height:167rpx; |
| | | |
| | | .nav { |
| | | width: 100%; |
| | | |
| | | .nav-item, |
| | | .nav-item-bg, |
| | | .nav-item-inner { |
| | | width: 330rpx; |
| | | height: 167rpx; |
| | | } |
| | | .nav-item{ |
| | | |
| | | .nav-item { |
| | | position: relative; |
| | | margin-top:30rpx; |
| | | margin-top: 30rpx; |
| | | } |
| | | .nav-item-inner{ |
| | | padding:30rpx 30rpx 0; |
| | | |
| | | .nav-item-inner { |
| | | padding: 30rpx 30rpx 0; |
| | | position: absolute; |
| | | top:0; |
| | | left:0; |
| | | |
| | | top: 0; |
| | | left: 0; |
| | | |
| | | } |
| | | .item-btn{ |
| | | width:125rpx; |
| | | height:42rpx; |
| | | |
| | | .item-btn { |
| | | width: 125rpx; |
| | | height: 42rpx; |
| | | line-height: 42rpx; |
| | | border-radius: 20rpx; |
| | | color:#fff; |
| | | font-size:22rpx; |
| | | padding:0; |
| | | margin:0; |
| | | color: #fff; |
| | | font-size: 22rpx; |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <view v-if="dataList.length>0" class="list"> |
| | | <view class="item" v-for="(item,index) in dataList" :key="item.id"> |
| | | <view class="line"> |
| | | <view class="label">上报时间</view> |
| | | <view class="value">{{item.createTime}}</view> |
| | | </view> |
| | | |
| | | <view class="line"> |
| | | <view class="label">上报状态</view> |
| | | <view class="value">{{formatStatus(item.status)}}</view> |
| | | </view> |
| | | |
| | | <view class="line"> |
| | | <view class="label">问题描述</view> |
| | | <view class="value">{{item.remark}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view v-else> |
| | | <u-empty marginTop="50%" mode="list"></u-empty> |
| | | </view> |
| | | |
| | | <u-loading-page :loading="loadingPage"></u-loading-page> |
| | | <u-loading-icon :show="loadingIcon"></u-loading-icon> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getPage |
| | | } from '@/api/task/taskReportForRepairs' |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataList: [], |
| | | page: { |
| | | current: 1, |
| | | size: 10 |
| | | }, |
| | | loadingPage: false, |
| | | loadingIcon: false, |
| | | query: { |
| | | createUser: uni.getStorageSync("userInfo").user_id, |
| | | type: "", |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | formatStatus() { |
| | | return (val => { |
| | | if (val == 1) { |
| | | return "待处理" |
| | | } else if (val == 10) { |
| | | return "已处理" |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | onLoad(option) { |
| | | uni.setNavigationBarTitle({ |
| | | title: option.title |
| | | }) |
| | | this.query.type = option.type |
| | | this.getList() |
| | | }, |
| | | onShow() { |
| | | |
| | | }, |
| | | onReachBottom() { |
| | | this.page.current += 1 |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | |
| | | this.page.current == 1 ? this.loadingPage = true : this.loadingIcon = true |
| | | |
| | | console.log(this.userInfo) |
| | | let param = {} |
| | | |
| | | getPage(Object.assign(param, this.query, this.page)).then(res => { |
| | | let data = res.data.records |
| | | this.dataList = this.dataList.concat(data) |
| | | this.page.current == 1 ? this.loadingPage = false : this.loadingIcon = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | page { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .container { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #F9F9FA; |
| | | |
| | | .list { |
| | | |
| | | .item { |
| | | background-color: #ffffff; |
| | | padding: 40rpx 20rpx; |
| | | margin-top: 20rpx; |
| | | |
| | | .line { |
| | | display: flex; |
| | | font-size: 28rpx; |
| | | padding: 6rpx; |
| | | |
| | | .label { |
| | | color: #a4a4a4; |
| | | width: 25%; |
| | | } |
| | | |
| | | .value {} |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | </style> |
| | |
| | | {{ location }}{{ room }}{{ `(共${num}人)` }}
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <!-- <view class="item statistics">
|
| | | <view class="room">{{ room }}</view>
|
| | | <view class="num">{{ `(共${num}人)` }}</view>
|
| | | </view> -->
|
| | | </view>
|
| | |
|
| | |
|
| | |
| | | pushShopPage(e){
|
| | | console.log(e,8888)
|
| | | const { addressCode } = e |
| | | let url = `/subPackage/workbench/views/cscj?stdId=${addressCode}` |
| | | let url = `/subPackage/house/houseNumber/index?stdId=${addressCode}` |
| | | this.$u.func.globalNavigator(url, "navTo")
|
| | | }
|
| | | }
|
| New file |
| | |
| | | <template>
|
| | | <view class="container">
|
| | | <view class="info-box">
|
| | | <view class="policeman-box">
|
| | | <view class="line-box">
|
| | | <view class="title">公安局</view>
|
| | | <view class="value">{{ policeData.branchName }}</view>
|
| | | </view>
|
| | | <view class="line-box">
|
| | | <view class="title">派出所</view>
|
| | | <view class="value">{{ policeData.localPoliceStationName }}</view>
|
| | | </view>
|
| | | <view class="line-box">
|
| | | <view class="title">辖区民警</view>
|
| | | <view class="value">{{ policeData.policeman }}</view>
|
| | | </view>
|
| | | <view class="line-box">
|
| | | <view class="title">联系电话</view>
|
| | | <view class="value">{{ policeData.policemanPhone }}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="fireman-box"> |
| | | <view class="line-box"> |
| | | <view class="title">消防照片</view> |
| | | <view class="value">未完善</view> |
| | | </view> |
| | | <view class="line-box"> |
| | | <view class="title">采集人</view> |
| | | <view class="value">未完善</view> |
| | | </view> |
| | | <view class="line-box"> |
| | | <view class="title">消防责任人</view> |
| | | <view class="value">未完善</view> |
| | | </view> |
| | | <view class="line-box"> |
| | | <view class="title">采集时间</view> |
| | | <view class="value">未完善</view> |
| | | </view> |
| | | <view class="line-box"> |
| | | <view class="title">历史事件</view> |
| | | <view class="value">未完善</view> |
| | | </view> |
| | | </view>
|
| | | </view>
|
| | | <view class="btn-box">
|
| | | <view class="sl-box" @click="csjlClick">
|
| | | <u-icon name="/static/icon/menu-01.png" size="30"></u-icon>
|
| | | <text>场所记录</text>
|
| | | </view>
|
| | | <view class="sl-box" @click="cscjClick">
|
| | | <u-icon name="/static/icon/menu-02.png" size="30"></u-icon>
|
| | | <text>场所采集</text>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | | <script>
|
| | | import {
|
| | | getDoorplateAddressDetail
|
| | | } from "@/api/doorplateAddress/doorplateAddress";
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | stdId: '',
|
| | | policeData: {
|
| | | branchName: '未完善',
|
| | | localPoliceStationName: '未完善',
|
| | | policeman: '未完善',
|
| | | policemanPhone: '未完善'
|
| | | },
|
| | | firemanData: {
|
| | | |
| | | }
|
| | | }
|
| | | },
|
| | | onLoad(option) {
|
| | | this.stdId = option.stdId
|
| | | this.getBuildingDetail()
|
| | | },
|
| | | methods: {
|
| | | async getBuildingDetail() {
|
| | | const {
|
| | | code,
|
| | | data
|
| | | } = await getDoorplateAddressDetail({
|
| | | stdId: this.stdId
|
| | | })
|
| | | if (code !== 200) {
|
| | | uni.showToast({
|
| | | title: "数据请求失败",
|
| | | icon: "error",
|
| | | duration: 1500
|
| | | }) |
| | | return
|
| | | } |
| | | const { |
| | | branchName, |
| | | localPoliceStationName, |
| | | policeman, |
| | | policemanPhone |
| | | } = data |
| | | console.log(data); |
| | | this.policeData = {
|
| | | branchName: branchName || '未完善',
|
| | | localPoliceStationName: localPoliceStationName || '未完善',
|
| | | policeman: policeman || '未完善',
|
| | | policemanPhone: policemanPhone || '未完善'
|
| | | }
|
| | | }, |
| | | cscjClick() { |
| | | this.$u.func.globalNavigator('/subPackage/workbench/views/cscj?stdId='+this.stdId) |
| | | }, |
| | | csjlClick() { |
| | | this.$u.func.globalNavigator('/subPackage/workbench/views/csjl?stdId='+this.stdId) |
| | | }
|
| | | },
|
| | | }
|
| | | </script>
|
| | | <style lang="scss" scoped>
|
| | | .container {
|
| | | background-color: #f6f6f6; |
| | | height: 100%;
|
| | |
|
| | | .info-box { |
| | | height: calc(100% - 110rpx); |
| | | padding-bottom: 20rpx; |
| | | overflow: auto;
|
| | | .policeman-box,
|
| | | .fireman-box {
|
| | | background-color: #fff;
|
| | | margin-top: 20rpx;
|
| | | padding: 0 20rpx;
|
| | |
|
| | | .line-box {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | border-bottom: 1rpx solid #f6f6f6;
|
| | | padding: 25rpx 0;
|
| | | font-size: 32rpx;
|
| | | .title { |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .value {
|
| | | color: #989898; |
| | | width: 50%; |
| | | word-wrap: break-word; |
| | | margin-left: 20rpx; |
| | | text-align: right;
|
| | | }
|
| | |
|
| | | &:last-child {
|
| | | border: 0;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .btn-box {
|
| | | width: 100%;
|
| | | height: 90rpx;
|
| | | background-color: #fff;
|
| | | display: flex;
|
| | | box-shadow: 0 2rpx 12rpx 0 rgba(0, 0, 0, .1);
|
| | |
|
| | | .sl-box {
|
| | | flex: 1;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | |
|
| | | text {
|
| | | margin-left: 15rpx;
|
| | | font-size: 27rpx;
|
| | | line-height: 90rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <view class="container">
|
| | | <view class="main">
|
| | | <view class="content">
|
| | | <u-form labelWidth="70" :model="form" ref="form">
|
| | | <u-form labelWidth="70" :model="form" ref="form" :rules="rules">
|
| | | <box-title title=""></box-title>
|
| | |
|
| | | <view class="basic-info mt-20">
|
| | | <u-form-item class="form-item" labelWidth="100" label="绑定手机" required>
|
| | | <u-form-item class="form-item" labelWidth="100" label="绑定手机" required prop="phone">
|
| | | <u--input border="none" v-model="form.phone" placeholder="请输入">
|
| | | </u--input>
|
| | | </u-form-item>
|
| | |
|
| | | <u-form-item class="form-item" labelWidth="100" label="地址" >
|
| | | <u-form-item class="form-item" labelWidth="100" label="地址">
|
| | | <u--input border="none" v-model="form.address" disabled>
|
| | | </u--input>
|
| | | </u-form-item>
|
| | |
|
| | | <u-form-item class="form-item" labelWidth="100" label="物业月费" >
|
| | | <u-form-item class="form-item" labelWidth="100" label="物业月费">
|
| | | <u--input border="none" v-model="form.propertyPrice" disabled>
|
| | | </u--input>
|
| | | </u-form-item>
|
| | |
|
| | | <u-form-item class="form-item" labelWidth="100" label="到期时间" >
|
| | | <u-form-item class="form-item" labelWidth="100" label="到期时间">
|
| | | <u--input border="none" v-model="form.serviceDue" disabled>
|
| | | </u--input>
|
| | | </u-form-item>
|
| | |
| | | <box-title class="mt-20" title="房屋外观"></box-title>
|
| | | <view class="pic mt-20">
|
| | | <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
|
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
|
| | | :capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
|
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
|
| | | :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg"
|
| | | @delete="deletePic">
|
| | | </u-upload>
|
| | | </view>
|
| | |
|
| | | <box-title title="房屋标签"></box-title>
|
| | | <view class="mt-20 flex label-btn-box b-c-w">
|
| | | <view v-for="(item, index) in labelBtnList" :key="index">
|
| | | <u-button color="#000" size="mini" type="primary" |
| | | :style="{background: item.color}"
|
| | | :plain="true" :text="item.name"
|
| | | @click="showLabelPopup(item)"></u-button>
|
| | | <u-button color="#000" size="mini" type="primary" :style="{background: item.color}"
|
| | | :plain="true" :text="item.name" @click="showLabelPopup(item)"></u-button>
|
| | | </view>
|
| | | </view>
|
| | | </u-form>
|
| | |
| | | removeHouseLabel
|
| | | } from "@/api/house/houseLabel.js";
|
| | | import {
|
| | | getHouseDetail,saveOrUpdateHouse
|
| | | getHouseDetail,
|
| | | saveOrUpdateHouse
|
| | | } from "@/api/house/house.js";
|
| | | import {
|
| | | minioBaseUrl
|
| | | } from '@/common/setting'
|
| | | import { number } from "echarts"; |
| | | import {
|
| | | number
|
| | | } from "echarts";
|
| | | export default {
|
| | | mixins: [uploadMixin],
|
| | | data() {
|
| | |
| | | propertyPrice: "",
|
| | | serviceDue: "",
|
| | | imageUrls: "",
|
| | | },
|
| | | rules: {
|
| | |
|
| | | phone: [{
|
| | | required: true, |
| | | message: '请输入手机号',
|
| | | // 可以单个或者同时写两个触发验证方式 |
| | | trigger: ['change', 'blur'],
|
| | | },
|
| | | {
|
| | | // 自定义验证函数,见上说明
|
| | | validator: (rule, value, callback) => {
|
| | | const reg =
|
| | | /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1589]))\d{8}$/
|
| | | if (reg.test(value)) {
|
| | | return true
|
| | | }
|
| | | return false
|
| | | },
|
| | | message: '请输入正确的手机号',
|
| | | // 触发器可以同时用blur和change
|
| | | trigger: ['change', 'blur'],
|
| | | }
|
| | | ]
|
| | | },
|
| | | showList: {
|
| | | relation: false
|
| | |
| | | labelValue: '',
|
| | | remark: '',
|
| | | // 标记
|
| | | number:0
|
| | | number: 0
|
| | | }
|
| | | },
|
| | | created() {
|
| | |
| | | async getHouseDetailInfo() {
|
| | | var that = this;
|
| | | const param = {
|
| | | houseCode : this.houseCode
|
| | | houseCode: this.houseCode
|
| | | }
|
| | | const res = await getHouseDetail(param)
|
| | | // 房屋标签处理
|
| | | const paramLabel = {
|
| | | parentId:1001
|
| | | parentId: 1001
|
| | | }
|
| | | const resLabel = await getLabelListByParentId(paramLabel)
|
| | | this.labelBtnList = resLabel.data
|
| | | if(null != res.data){
|
| | | if (null != res.data) {
|
| | | const images = []
|
| | | const {
|
| | | phone,
|
| | |
| | | imageUrls,
|
| | | houseLabelVOList
|
| | | } = res.data
|
| | | if(imageUrls.length>0){
|
| | | if (imageUrls.length > 0) {
|
| | | const urls = imageUrls.split(',')
|
| | | // 遍历
|
| | | urls.forEach(e=>{
|
| | | urls.forEach(e => {
|
| | | images.push({
|
| | | url:minioBaseUrl + e,
|
| | | url: minioBaseUrl + e,
|
| | | name: e
|
| | | })
|
| | | })
|
| | | }
|
| | | |
| | | if(houseLabelVOList.length>0){
|
| | | that.labelBtnList.forEach(e=>{
|
| | | houseLabelVOList.forEach(f=>{
|
| | | if(Number(e.id) == f.labelId){
|
| | |
|
| | | if (houseLabelVOList.length > 0) {
|
| | | that.labelBtnList.forEach(e => {
|
| | | houseLabelVOList.forEach(f => {
|
| | | if (Number(e.id) == f.labelId) {
|
| | | e['color'] = f.color
|
| | | e['remark'] = f.remark
|
| | | }
|
| | |
| | | // 获取房屋标签信息
|
| | | async getLabelList() {
|
| | | const param = {
|
| | | parentId:1001
|
| | | parentId: 1001
|
| | | }
|
| | | const res = await getLabelListByParentId(param)
|
| | | this.labelBtnList = res.data
|
| | | },
|
| | | // 更新房屋数据
|
| | | async updateHouseInfo(){
|
| | | async updateHouseInfo() {
|
| | | this.form['houseCode'] = this.houseCode
|
| | | if (this.form.images.length > 0) {
|
| | | let urls = []
|
| | |
| | | duration: 1500,
|
| | | success: () => {
|
| | | setTimeout(() => {
|
| | | // uni.navigateBack()
|
| | | uni.navigateBack()
|
| | | }, 1500)
|
| | | }
|
| | | })
|
| | |
| | | this.labelModelInfo.title = item.name
|
| | | this.currentLabelInfo = item
|
| | | // 遍历标签集合
|
| | | this.labelList.forEach(e=>{
|
| | | if(e.color == item.color){
|
| | | this.labelList.forEach(e => {
|
| | | if (e.color == item.color) {
|
| | | this.labelValue = e.name
|
| | | this.remark = item.remark
|
| | | this.number = 1
|
| | |
| | | } = this.currentColorInfo
|
| | | let res = null
|
| | | if (name === '撤销') {
|
| | | if(this.number==1){
|
| | | if (this.number == 1) {
|
| | | const data = {
|
| | | labelId:id,
|
| | | labelId: id,
|
| | | houseCode: this.houseCode
|
| | | }
|
| | | res = await removeHouseLabel(data)
|
| | | }else{
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: "无可撤销项",
|
| | | icon: "error",
|
| | |
| | | res = await updateHouseLabel({
|
| | | houseCode: this.houseCode,
|
| | | labelId: id,
|
| | | remark:this.remark,
|
| | | remark: this.remark,
|
| | | color
|
| | | })
|
| | | }
|
| | |
| | | })
|
| | | return
|
| | | }
|
| | | // 刷新页面
|
| | | this.getHouseDetailInfo()
|
| | | // 刷新页面 (直接刷新页面上传但没提交的图片会直接没了)
|
| | | // this.getHouseDetailInfo()
|
| | | const labelIndex = this.labelBtnList.findIndex(item => item.id === id)
|
| | | console.log(id);
|
| | | this.labelBtnList[labelIndex].color = color
|
| | | this.popupShow = false
|
| | | },
|
| | | |
| | |
|
| | | }
|
| | | }
|
| | | </script>
|
| New file |
| | |
| | | <template>
|
| | | <view class="container">
|
| | | <view class="tabsAndSearch">
|
| | | <view class="tabs">
|
| | | <u-tabs :list="tabsList" @click="tabClick" :scrollable="false"></u-tabs>
|
| | | </view>
|
| | | <view class="search">
|
| | | <u--input placeholder="请输入场所名称" prefixIcon="search" class="search-ipt"
|
| | | prefixIconStyle="font-size: 22px;color: #909399"></u--input>
|
| | | </view>
|
| | | </view>
|
| | | <view class="info-box">
|
| | | <view class="records-card" v-for="records in recordsData" :key="records.id">
|
| | | <view class="title">
|
| | | <text>{{ records.title }}</text>
|
| | | <text>{{ records.time }}</text>
|
| | | </view>
|
| | | <view class="info">
|
| | | <view class="charge-man">
|
| | | <text>场所负责人:</text>
|
| | | <text>{{ records.chargeMan }}</text>
|
| | | </view>
|
| | | <view class="phone">
|
| | | <text>手机号:</text>
|
| | | <text>{{ records.phone }}</text>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | tabsList: [{
|
| | | id: 1,
|
| | | name: '全部'
|
| | | },
|
| | | {
|
| | | id: 2,
|
| | | name: '待完善'
|
| | | },
|
| | | {
|
| | | id: 3,
|
| | | name: '已完善'
|
| | | }
|
| | | ],
|
| | | recordsData: [{
|
| | | id: 1,
|
| | | title: '科创4栋',
|
| | | time: new Date().toLocaleString(),
|
| | | chargeMan: '铃铃铃',
|
| | | phone: '17678654431'
|
| | | },
|
| | | {
|
| | | id: 2,
|
| | | title: '科创4栋',
|
| | | time: new Date().toLocaleString(),
|
| | | chargeMan: '铃铃铃',
|
| | | phone: '17678654431'
|
| | | },
|
| | | {
|
| | | id: 3,
|
| | | title: '科创4栋',
|
| | | time: new Date().toLocaleString(),
|
| | | chargeMan: '铃铃铃',
|
| | | phone: '17678654431'
|
| | | },
|
| | | {
|
| | | id: 4,
|
| | | title: '科创4栋',
|
| | | time: new Date().toLocaleString(),
|
| | | chargeMan: '铃铃铃',
|
| | | phone: '17678654431'
|
| | | }
|
| | | ]
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | tabClick() {
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .container {
|
| | | height: 100%;
|
| | | overflow-y: auto;
|
| | | background-color: #f6f6f6;
|
| | |
|
| | | .tabsAndSearch {
|
| | | background-color: #fff;
|
| | |
|
| | | .tabs { |
| | | }
|
| | |
|
| | | .search {
|
| | | padding: 20rpx 70rpx;
|
| | |
|
| | | .search-ipt {
|
| | | border: 0;
|
| | | border-radius: 9999rpx;
|
| | | background-color: #f6f6f6;
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | .info-box {
|
| | | .records-card {
|
| | | margin: 20rpx 30rpx 0 30rpx;
|
| | | background-color: #fff;
|
| | | padding: 30rpx;
|
| | | border-radius: 10rpx;
|
| | |
|
| | | .title {
|
| | | line-height: 70rpx;
|
| | | display: flex;
|
| | | font-size: 35rpx;
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | border-bottom: 1rpx solid #f6f6f6;
|
| | |
|
| | | text {
|
| | | &:nth-child(1) {
|
| | | font-weight: 700;
|
| | | }
|
| | |
|
| | | &:nth-child(2) {
|
| | | font-size: 27rpx;
|
| | | color: #999999;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .charge-man,
|
| | | .phone {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | font-weight: 30rpx;
|
| | | color: #717171;
|
| | | margin-top: 25rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | &:last-child {
|
| | | margin-bottom: 20rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |