已添加2个文件
已删除1个文件
已修改20个文件
已重命名2个文件
| | |
| | | # å¼åç¯å¢é
ç½® |
| | | NODE_ENV = 'development' |
| | | VUE_APP_API_URL = 'https://test.doumee.cn/dianjiang_admin_api/' |
| | | # VUE_APP_API_URL = 'http://192.168.1.37:11010/' |
| | | # VUE_APP_API_URL = 'https://test.doumee.cn/dianjiang_admin_api/' |
| | | VUE_APP_API_URL = 'http://192.168.0.7/dianjiang_admin_api/' |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | |
| | |
| | | # å
³éDEBUG |
| | | VUE_APP_DEBUG = 'off' |
| | | VUE_APP_CONTEXT_PATH = '/dianjiang_admin' |
| | | VUE_APP_API_URL = 'https://test.doumee.cn/' |
| | | VUE_APP_API_URL = 'https://zbyj.zbom.com/' |
| | |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exportTemplate () { |
| | | // æä¿ç³è¯· |
| | | window.open('/template/cases.xlsx') |
| | | window.open('/dianjiang_template/cases.xlsx') |
| | | }, |
| | | clickRef () { |
| | | this.$refs.fileExcel.click() |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-form-item label="åä¸åç±»å" prop="name" v-if="form.type == 1"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ
é¿é¢å" prop="name" v-else-if="form.type == 2"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥æ
é¿é¢å" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="èå¸ç级" prop="name" v-else-if="form.type == 3"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥æ
é¿é¢å" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name" v-else> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç¼ç " prop="detail" v-if="form.type ==0" > |
| | |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exportTemplate () { |
| | | // æä¿ç³è¯· |
| | | window.open('/template/member.xlsx') |
| | | window.open('/dianjiang_template/member.xlsx') |
| | | }, |
| | | clickRef () { |
| | | this.$refs.fileExcel.click() |
| | |
| | | @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" @uploadBegin="isUploading = true" /> |
| | | <div class="content"> |
| | | <div>1ã建议尺寸ï¼750px X 750px ã</div> |
| | | <div>2ãæ¯æpngãjpgãjpegæ ¼å¼ï¼å¤§å°ä¸è¶
è¿2Mï¼ä¸ä¼ å¾çä¸å
许æ¶åæ¿æ²»ææä¸è²æ
ã</div> |
| | | <div>2ãæ¯æpngãjpgãjpegæ ¼å¼ï¼å¤§å°ä¸è¶
è¿5Mï¼ä¸ä¼ å¾çä¸å
许æ¶åæ¿æ²»ææä¸è²æ
ã</div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | |
| | | methods: { |
| | | loadCateList () { |
| | | cateList({ |
| | | status: 0 |
| | | }).then(res => { |
| | | this.cateList = res |
| | | }) |
| | |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç¼ç " prop="detail"> |
| | | <el-input v-model="searchForm.detail" placeholder="请è¾å
¥æåºç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | detail: '', |
| | | type: 0 |
| | | } |
| | | } |
| | |
| | | }, |
| | | methods: { |
| | | synchronization() { |
| | | this.$dialog.deleteConfirm('ç¡®è®¤åæ¥æåºä¿¡æ¯åï¼') |
| | | this.$dialog.actionConfirmButton('ç¡®è®¤åæ¥æåºä¿¡æ¯åï¼') |
| | | .then(() => { |
| | | syncZhanQu() |
| | | .then(res=>{ |
| | | if (res.code === 200) { |
| | | this.search() |
| | | this.$message.success('忥æåï¼') |
| | | } |
| | | }) |
| | |
| | | <el-form-item label="åä¸åç±»å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åä¸åç±»å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©ç¶æ" @change="search"> |
| | | <el-option label="å
¨é¨" value=""></el-option> |
| | | <el-option label="å¯ç¨" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" :selectable="isChangeSelected" width="55"></el-table-column> |
| | | <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="icon" label="æè¡æ¦å¾é" min-width="220px"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; flex-wrap: wrap;width: 200px;" v-if="row.fileList && row.fileList.length"> |
| | |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | status: '', |
| | | type: 1 |
| | | } |
| | | } |
| | |
| | | <TableLayout :permissions="['business:category: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="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥æ
é¿é¢å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©ç¶æ" @change="search"> |
| | | <el-option label="å
¨é¨" value=""></el-option> |
| | | <el-option label="å¯ç¨" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" :selectable="isChangeSelected" width="55"></el-table-column> |
| | | <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 label="ç¶æ"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch :disabled="row.isFixed ==1" @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaCategoryWindow.open('ç¼è¾æ
é¿é¢å', row,searchForm.type)" 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> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | status: '', |
| | | type: 2 |
| | | } |
| | | } |
| | |
| | | <TableLayout :permissions="['business:category: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="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥èå¸ç级" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©ç¶æ" @change="search"> |
| | | <el-option label="å
¨é¨" value=""></el-option> |
| | | <el-option label="å¯ç¨" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" :selectable="isChangeSelected" width="55"></el-table-column> |
| | | <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="icon" label="徿 " min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.iconFull" style="width: 50px; height: 50px; margin-right: 10px" :src="row.iconFull" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" label="æè¿°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="ç级顺åº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="updateUserName" label="æä½äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="updateTime" label="æè¿æä½æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaCategoryWindow.open('ç¼è¾èå¸ç级', row,searchForm.type)" 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> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | status: '', |
| | | type: 3 |
| | | } |
| | | } |
| | |
| | | <!-- æç´¢è¡¨å --> |
| | | <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" style="width: 150px" placeholder="请è¾å
¥å§å" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.name" style="width: 180px" placeholder="请è¾å
¥å§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å·" prop="code"> |
| | | <el-input v-model="searchForm.code" style="width: 150px" placeholder="请è¾å
¥å·¥å·" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.code" style="width: 180px" placeholder="请è¾å
¥å·¥å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æåº" prop="zhanquIds"> |
| | | <el-select |
| | | v-model="searchForm.zhanquIds" |
| | | style="width: 150px" |
| | | style="width: 180px" |
| | | placeholder="æåº" |
| | | clearable |
| | | @change="search" |
| | |
| | | <el-form-item label="åä¸åç±»å" prop="bustypeIdList"> |
| | | <el-select |
| | | v-model="searchForm.bustypeIdList" |
| | | style="width: 150px" |
| | | style="width: 180px" |
| | | placeholder="åä¸åç±»å" |
| | | clearable |
| | | multiple |
| | | collapse-tags |
| | | @change="search" |
| | | > |
| | | <el-option |
| | |
| | | <el-form-item label="æ
é¿é¢å" prop="fieldIdList"> |
| | | <el-select |
| | | v-model="searchForm.fieldIdList" |
| | | style="width: 150px" |
| | | style="width: 300px" |
| | | placeholder="æ
é¿é¢å" |
| | | clearable |
| | | collapse-tags |
| | | multiple |
| | | @change="search" |
| | | > |
| | |
| | | <el-form-item label="èå¸ç级" prop="levelId"> |
| | | <el-select |
| | | v-model="searchForm.levelId" |
| | | style="width: 150px" |
| | | style="width: 180px" |
| | | placeholder="èå¸ç级" |
| | | clearable |
| | | @change="search" |
| | |
| | | v-model="searchForm.status" |
| | | placeholder="ç¶æ" |
| | | clearable |
| | | style="width: 150px" |
| | | style="width: 180px" |
| | | @change="search" |
| | | > |
| | | <el-option :key="0" :value="0" label="å¯ç¨"></el-option> |
| | |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="imgurl" label="å¾ç" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.fullImgurl" style="width: 50px; height: 50px; margin-right: 10px" :src="row.fullImgurl" |
| | | :preview-src-list="[row.fullImgurl]"> |
| | | <el-image v-if="row.fullImgurl" style="width: 50px; margin-right: 10px" :src="row.fullImgurl" |
| | | :preview-src-list="[row.fullImgurl]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <el-table-column prop="fieldNames" label="æ
é¿é¢å" min-width="200px"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.fieldList && row.fieldList.length"> |
| | | <div style="display:inline-block;" v-for="(item,index) in row.fieldList">{{item.name||''}} <span v-if="index < row.fieldList.length-1" style="display:inline-block;padding: 0px 3px;">/</span></div> |
| | | <div style="width: 190px; display: -webkit-box; -webkit-box-orient: vertical; line-clamp: 2; overflow: hidden;"> |
| | | <template v-for="(item,index) in row.fieldList">{{item.name||''}} <template v-if="index < row.fieldList.length-1">/</template></template> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaMemberWindow.open('ç¼è¾èå¸', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:member:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.OperaCasesListWindow.open('æ¥çè叿¡ä¾ã'+row.name+'ã', row.id)" icon="el-icon-open">æ¡ä¾</el-button> |
| | | <el-button type="text" @click="$refs.OperaCasesListWindow.open('æ¥çè叿¡ä¾ã'+row.name+'ã', row.id)" icon="el-icon-picture-outline">æ¡ä¾</el-button> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <template> |
| | | <div class="main_home"> |
| | | <div class="home_header"> |
| | | <div class="mb10 fs17">ä¸å好ï¼{{ userInfo.realname }}</div> |
| | | <div class="mb10 fs17">{{getTimePeriod()}}ï¼{{ userInfo.realname }}</div> |
| | | <div class="fs13"> |
| | | ä»å¤©æ¯ {{ nowDate }} {{ nowWeek }}ï¼æ¬¢è¿è®¿é®å¿é¦ç¹å°åå°ç®¡çç³»ç» |
| | | </div> |
| | |
| | | // this.initData() |
| | | }, |
| | | methods: { |
| | | getTimePeriod() { |
| | | const now = new Date() |
| | | const hours = now.getHours() |
| | | |
| | | if (hours >= 0 && hours < 12) { |
| | | return 'ä¸å好' |
| | | } else { |
| | | return 'ä¸å好' |
| | | } |
| | | }, |
| | | updateDate () { |
| | | this.nowDate = dayjs().format('YYYYå¹´MæDæ¥') |
| | | this.nowWeek = weeks[new Date().getDay()] |
| | |
| | | if (dd.env.platform !== 'notInDingTalk') { |
| | | // å
夿å°åä¸ææ²¡æcorpId |
| | | if (href.indexOf('?corpid=') !== -1) { |
| | | alert('ä»å°åæ¿corpid') |
| | | // alert('ä»å°åæ¿corpid') |
| | | corpId = href.substring(href.lastIndexOf('?corpid=') + 8, href.lastIndexOf('#')) |
| | | window.localStorage.setItem('corpId', corpId) |
| | | // 夿æµè§å¨ç¼åæ¯å¦æcorpId |
| | | } else if (window.localStorage.getItem('corpId')) { |
| | | corpId = window.localStorage.getItem('corpId') |
| | | alert('ä»ç¼åæ¿corpid') |
| | | // alert('ä»ç¼åæ¿corpid') |
| | | } |
| | | // dingulzemj5bynjciapg |
| | | dd.requestAuthCode({ |
| | | corpId: corpId, |
| | | clientId: 'dingulzemj5bynjciapg', |
| | | clientId: 'dingy7xdyzffnegiaszo', |
| | | onSuccess: function(result) { |
| | | loginByDingTalk({ |
| | | code: result.code, |
| | |
| | | var that = this |
| | | let href = window.location.href; |
| | | if (this.$dd.env.platform !== 'notInDingTalk') { |
| | | console.log(href) |
| | | console.log('ééææç»å½') |
| | | let corpId = href.substring(href.lastIndexOf('?corpid=') + 8, href.lastIndexOf('#')) |
| | | console.log(corpId) |
| | | // dingy7xdyzffnegiaszo æ£å¼ |
| | | // dingulzemj5bynjciapg æµè¯ |
| | | this.$dd.requestAuthCode({ |
| | | corpId: corpId, |
| | | clientId: 'dingulzemj5bynjciapg', |
| | | clientId: 'dingy7xdyzffnegiaszo', |
| | | onSuccess: function(result) { |
| | | that.$u.api.ddLogin({ |
| | | code: result.code, |
| | |
| | | } |
| | | }); |
| | | } else if (href.indexOf('?token') !== -1) { |
| | | console.log('tokenå
ç»') |
| | | let token = href.substring(href.lastIndexOf('?token=') + 7, href.lastIndexOf('#')) |
| | | that.$store.commit('setToken', token) |
| | | that.$isResolve() |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="previewImage" :style="{ 'background-color': 'rgba(0,0,0,' + opacity + ')' }" v-if="show" @tap="close" @touchmove.stop.prevent> |
| | | <swiper class="swiper" :current="index" @change="swiperChange" :disable-touch="swiper" :circular="circular"> |
| | | <swiper-item v-for="(img, i) in imgs" :key="'swiper-item-'+i" :id="'swiper-item-'+i"> |
| | | <movable-area class="marea" scale-area> |
| | | <movable-view |
| | | :id="'movable-view-'+i" |
| | | :key="'movable-view-'+i" |
| | | class="mview" |
| | | direction="all" |
| | | :out-of-bounds="false" |
| | | :inertia="true" |
| | | damping="90" |
| | | friction="2" |
| | | scale="true" |
| | | scale-min="1" |
| | | scale-max="4" |
| | | :scale-value="scale" |
| | | @scale="onScale" |
| | | @change="movableChange" |
| | | > |
| | | <image |
| | | :id="'image-'+i" |
| | | :key="'movable-view'+i" |
| | | class="image" |
| | | :src="img" |
| | | :style="{ transform: 'rotateZ(' + deg + 'deg)' }" |
| | | :data-index="i" |
| | | :data-src="img" |
| | | mode="widthFix" |
| | | @touchmove="handletouchmove" |
| | | @touchstart="handletouchstart" |
| | | @touchend="handletouchend" |
| | | /> |
| | | </movable-view> |
| | | </movable-area> |
| | | </swiper-item> |
| | | </swiper> |
| | | <view class="page" v-if="imgs.length > 0"> |
| | | <text class="text">{{ index + 1 }} / {{ imgs.length }}</text> |
| | | </view> |
| | | <!-- <view class="save" v-if="saveBtn" @click.stop.prevent="save"><text class="text">ä¿å</text></view> --> |
| | | <!-- <view class="rotate" v-if="rotateBtn" @click.stop.prevent="rotate"><text class="text">æè½¬</text></view> --> |
| | | <!-- <view class="desc" v-if="descs.length > 0 && descs.length == imgs.length && descs[index].length > 0">{{ descs[index] }}</view> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'ksj-previewImage', //æä»¶åç§° |
| | | props: { |
| | | imgs: { |
| | | //å¾çå表 |
| | | type: Array, |
| | | required: true, |
| | | default: () => { |
| | | return []; |
| | | } |
| | | }, |
| | | descs: { |
| | | //æè¿°å表 |
| | | type: Array, |
| | | required: false, |
| | | default: () => { |
| | | return []; |
| | | } |
| | | }, |
| | | //éæåº¦,0å°1ä¹é´ã |
| | | opacity: { |
| | | type: Number, |
| | | default: 0.8 |
| | | }, |
| | | //ä¿åæé® |
| | | saveBtn: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | //æè½¬æé® |
| | | rotateBtn: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | //循ç¯é¢è§ |
| | | circular:{ |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | swiper:false,//æ¯å¦ç¦ç¨ |
| | | show: false, //æ¾ç¤ºç¶æ |
| | | index: 0, //å½å页 |
| | | deg: 0, //æè½¬è§åº¦ |
| | | time: 0, //宿¶å¨ |
| | | interval: 1000, //é¿æäºä»¶ |
| | | scale: 1 //ç¼©æ¾æ¯ä¾ |
| | | }; |
| | | }, |
| | | methods: { |
| | | //æ¯ä¾åå |
| | | onScale(e) { |
| | | |
| | | }, |
| | | |
| | | //é¿æäºä»¶ç¸å
³å
容---------å¼å§------------------- |
| | | //æ¥è§¦å¼å§ |
| | | handletouchstart(e) { |
| | | var tchs = e.touches.length; |
| | | if (tchs != 1) { |
| | | return false; |
| | | } |
| | | this.time = setTimeout(() => { |
| | | this.onLongPress(e); |
| | | }, this.interval); |
| | | return false; |
| | | }, |
| | | //æ¸
é¤å®æ¶å¨ |
| | | handletouchend() { |
| | | clearTimeout(this.time); |
| | | if (this.time != 0) { |
| | | //å¤çç¹å»æ¶é´ |
| | | } |
| | | return false; |
| | | }, |
| | | //æ¸
é¤å®æ¶å¨ |
| | | handletouchmove() { |
| | | clearTimeout(this.time); |
| | | this.time = 0; |
| | | }, |
| | | // å¤çé¿æäºä»¶ |
| | | onLongPress(e) { |
| | | var src = e.currentTarget.dataset.src; |
| | | var index = e.currentTarget.dataset.index; |
| | | var data = { src: src, index: index }; |
| | | this.$emit('longPress', data); |
| | | }, |
| | | //é¿æäºä»¶ç¸å
³å
容---------ç»æ------------------- |
| | | |
| | | //å¾çæ¹å |
| | | swiperChange(e) { |
| | | this.index = e.target.current; //æ´æ°å½åå¾çindex |
| | | |
| | | this.$nextTick(function() { |
| | | this.scale = 1; |
| | | }) |
| | | |
| | | //this.deg = 0; //æè½¬è§åº¦ |
| | | //this.swiper=true; |
| | | }, |
| | | |
| | | //ç§»å¨åå |
| | | movableChange(e) { |
| | | //console.log(e); |
| | | /* if(this.old.scale <= 1){ |
| | | this.swiper=false; |
| | | }else if(e.detail.x===0){ |
| | | this.swiper=false; |
| | | } */ |
| | | }, |
| | | |
| | | |
| | | //ä¿å |
| | | save(e) { |
| | | var _this = this; |
| | | var src = this.imgs[this.index]; |
| | | //#ifdef MP-WEIXIN |
| | | //æååç¨æ·åèµ·ææè¯·æ± |
| | | uni.authorize({ |
| | | scope: 'scope.writePhotosAlbum', |
| | | success() { |
| | | console.log('kxj-previewImage:å
许å¨å'); |
| | | _this.downloadImg(src); |
| | | } |
| | | }); |
| | | //#endif |
| | | |
| | | //#ifdef APP-PLUS |
| | | this.downloadImg(src); |
| | | //#endif |
| | | |
| | | //#ifdef H5 |
| | | //éåæºå¾çå°ç´æ¥æå¼ |
| | | var abtn = document.createElement('a'); |
| | | abtn.href = src; |
| | | abtn.download = ''; |
| | | abtn.target = '_blank'; |
| | | abtn.click(); |
| | | //#endif |
| | | }, |
| | | |
| | | //ä¸è½½å¹¶ä¿åæä»¶ |
| | | downloadImg(src) { |
| | | //ä¸è½½å¾çæä»¶ |
| | | uni.showLoading({ |
| | | title: '大徿åä¸' |
| | | }); |
| | | uni.downloadFile({ |
| | | url: src, |
| | | success: function(res) { |
| | | console.log('kxj-previewImage:ä¸è½½æå'); |
| | | uni.hideLoading(); |
| | | uni.saveImageToPhotosAlbum({ |
| | | filePath: res.tempFilePath, |
| | | success: () => { |
| | | uni.showToast({ |
| | | title: 'å·²ä¿åè³ç¸å', |
| | | duration: 1000 |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | fail: function() { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: 'å¾çä¸è½½å¤±è´¥', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //æè½¬ |
| | | rotate(e) { |
| | | this.deg = this.deg == 270 ? 0 : this.deg + 90; |
| | | }, |
| | | //æå¼ |
| | | open(e) { |
| | | if (e === null || e === '') { |
| | | console.log('kxj-previewImage:æå¼åæ°æ æ'); |
| | | return; |
| | | } |
| | | |
| | | if (!isNaN(e)) { |
| | | if(e>=this.imgs.length){ |
| | | console.log('kxj-previewImage:æå¼åæ°æ æ'); |
| | | }else{ |
| | | this.index = e; |
| | | } |
| | | } else { |
| | | var index = this.imgs.indexOf(e); |
| | | if(index===-1){ |
| | | this.imgs = [e]; |
| | | this.index = 0; |
| | | console.log('kxj-previewImage:æªå¨å¾çå°åæ°ç»ä¸æ¾å°ä¼ å
¥çå¾çï¼å·²ä¸ºä½ èªå¨æå¼åå¼ é¢è§æ¨¡å¼') |
| | | }else{ |
| | | this.index = this.imgs.indexOf(e); |
| | | } |
| | | } |
| | | console.log('kxj-previewImage:å½åé¢è§å¾çåºå·'+this.index); |
| | | this.show = true; |
| | | }, |
| | | //å
³é |
| | | close(e) { |
| | | this.show = false; |
| | | this.index = 0; //å½å页 |
| | | this.deg = 0; //æè½¬è§åº¦ |
| | | this.time = 0; //宿¶å¨ |
| | | this.interval = 1000; //é¿æäºä»¶ |
| | | this.scale = 1; //ç¼©æ¾æ¯ä¾ |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <!--使ç¨scss,åªå¨æ¬ç»ä»¶çæ--> |
| | | <style lang="scss" scoped> |
| | | .previewImage { |
| | | z-index: 999; |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: #000000; |
| | | user-select: none; |
| | | .swiper { |
| | | width: 100%; |
| | | height: 100%; |
| | | .marea { |
| | | height: 100%; |
| | | width: 100%; |
| | | position: fixed; |
| | | overflow: hidden; |
| | | .mview { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | width: 100%; |
| | | height: auto; |
| | | min-height: 100%; |
| | | .image { |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page { |
| | | position: absolute; |
| | | width: 100%; |
| | | top: 20rpx; |
| | | text-align: center; |
| | | .text { |
| | | color: #fff; |
| | | font-size: 26rpx; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | padding: 3rpx 16rpx; |
| | | border-radius: 20rpx; |
| | | user-select: none; |
| | | } |
| | | } |
| | | .save { |
| | | position: absolute; |
| | | left: 10rpx; |
| | | width: 120rpx; |
| | | height: 56rpx; |
| | | bottom: 10rpx; |
| | | text-align: center; |
| | | padding: 10rpx; |
| | | .text { |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | color: #fff; |
| | | font-size: 30rpx; |
| | | border-radius: 20rpx; |
| | | border: 1rpx solid #f1f1f1; |
| | | padding: 6rpx 22rpx; |
| | | user-select: none; |
| | | } |
| | | .text:active { |
| | | background-color: rgba(100, 100, 100, 0.5); |
| | | } |
| | | } |
| | | .rotate { |
| | | position: absolute; |
| | | right: 10rpx; |
| | | width: 120rpx; |
| | | height: 56rpx; |
| | | bottom: 10rpx; |
| | | text-align: center; |
| | | padding: 10rpx; |
| | | .text { |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | color: #fff; |
| | | font-size: 30rpx; |
| | | border-radius: 20rpx; |
| | | border: 1rpx solid #f1f1f1; |
| | | padding: 6rpx 22rpx; |
| | | user-select: none; |
| | | } |
| | | .text:active { |
| | | background-color: rgba(100, 100, 100, 0.5); |
| | | } |
| | | } |
| | | .desc { |
| | | position: absolute; |
| | | top: 0; |
| | | width: 100%; |
| | | padding: 5rpx 10rpx; |
| | | text-align: center; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | color: #fff; |
| | | font-size: 28rpx; |
| | | letter-spacing: 3rpx; |
| | | user-select: none; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | import store from './store/index.js' |
| | | import * as dd from 'dingtalk-jsapi'; |
| | | import { initDingH5RemoteDebug } from "dingtalk-h5-remote-debug"; |
| | | import vconsole from "vconsole"; |
| | | // import vconsole from "vconsole"; |
| | | |
| | | Vue.config.productionTip = false |
| | | App.mpType = 'app' |
| | |
| | | Vue.prototype.$isResolve = resolve |
| | | }) |
| | | Vue.prototype.$dd = dd |
| | | Vue.prototype.$baseUrl = 'https://test.doumee.cn/dianjiang_web_api/' |
| | | // Vue.prototype.$baseUrl = 'https://test.doumee.cn/dianjiang_web_api/' |
| | | // Vue.prototype.$baseUrl = 'http://192.168.0.7/dianjiang_web_api/' |
| | | Vue.prototype.vconsole = new vconsole(); |
| | | Vue.prototype.$baseUrl = 'https://zbyj.zbom.com/dianjiang_web_api/' |
| | | // Vue.prototype.vconsole = new vconsole(); |
| | | |
| | | initDingH5RemoteDebug(); |
| | | |
| | |
| | | { |
| | | "name" : "mini-program", |
| | | "name" : "ç¹å°", |
| | | "appid" : "__UNI__438238C", |
| | | "description" : "", |
| | | "versionName" : "1.0.0", |
| | |
| | | "h5" : { |
| | | "router" : { |
| | | "mode" : "hash", |
| | | "base" : "/h5/" |
| | | } |
| | | "base" : "/dianjiang_h5/" |
| | | }, |
| | | "title" : "ç¹å°" |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "id": "Easy-preview", |
| | | "name": "Easy-preview", |
| | | "displayName": "Easy-preview", |
| | | "version": "1.0", |
| | | "description": "å¾çé¢è§ï¼æ¯æä¸è½½å°ç¸åï¼æ¨ªå±èªå¨ææ¾ï¼ç¼©æ¾ ï¼ ", |
| | | "keywords": [ |
| | | "å¾çé¢è§", |
| | | "ä¸è½½å°ç¸å", |
| | | "缩æ¾" |
| | | ], |
| | | "dcloudext": { |
| | | "category": [ |
| | | "å端ç»ä»¶", |
| | | "éç¨ç»ä»¶" |
| | | ] |
| | | } |
| | | } |
| | |
| | | { |
| | | "path": "pages/details/details", |
| | | "style": { |
| | | "navigationBarTitleText": "ç¹èµèå¸è¯¦æ
", |
| | | "navigationBarTitleText": "ç¹å°èå¸è¯¦æ
", |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | |
| | | <view class="card-title-xian"></view> |
| | | <text>æ
é¿é¢å</text> |
| | | </view> |
| | | <view class="card-list" v-if="item.fieldList && item.fieldList.length > 0"> |
| | | <view class="card-list-item" v-for="(child, index) in item.fieldList" :key="index"> |
| | | <view class="card-list-item-title">{{child.name}}ï¼</view> |
| | | <view class="card-list-item-text">{{child.remark}}</view> |
| | | <view class="card-list"> |
| | | <view class="card-list-item"> |
| | | <text v-for="(child, index) in item.fieldList" :key="index">{{child.name}} <template v-if="item.fieldList.length- 1 !== index">ã</template></text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | <view class="left-info">{{child.detail}}</view> |
| | | </view> |
| | | <view class="right" v-if="child.fileList && child.fileList.length > 0" @click="yulan(index, child.fileList[0].url)"> |
| | | <view class="right" v-if="child.fileList && child.fileList.length > 0" @click="yulan(child.fileList)"> |
| | | <image :src="child.fileList[0].url" mode="widthFix"></image> |
| | | <view class="right-num">å
±{{child.fileList.length}}å¼ </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <previewImage ref="previewImage" :opacity="1" :circular="true" :imgs="imgs" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import previewImage from '@/components/kxj-previewImage/kxj-previewImage.vue'; |
| | | export default { |
| | | components: { previewImage}, //注åæä»¶ |
| | | data() { |
| | | return { |
| | | id: null, |
| | | item: null, |
| | | |
| | | imgs: [] |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | |
| | | this.getDetails() |
| | | }, |
| | | methods: { |
| | | yulan(index, url) { |
| | | uni.previewImage({ |
| | | current: url, |
| | | urls: this.item.casesList[index].fileList.map(item => item.url) |
| | | }) |
| | | yulan(arr) { |
| | | this.imgs = arr.map(item => item.url) |
| | | this.$refs.previewImage.open(this.imgs[0]); |
| | | // uni.previewImage({ |
| | | // current: url, |
| | | // urls: this.item.casesList[index].fileList.map(item => item.url), |
| | | // indicator: 'number' |
| | | // }) |
| | | }, |
| | | zhankai() { |
| | | this.item.zhankai = !this.item.zhankai |
| | |
| | | res.data.zhankai = false |
| | | res.data.contentCopy = res.data.content.substring(0, 30) + '...' |
| | | } |
| | | let arr = [] |
| | | res.data.fieldList.forEach(item => { |
| | | if (item.remark) { |
| | | arr.push(item) |
| | | } |
| | | }) |
| | | res.data.fieldList = arr; |
| | | // let arr = [] |
| | | // res.data.fieldList.forEach(item => { |
| | | // if (item.remark) { |
| | | // arr.push(item) |
| | | // } |
| | | // }) |
| | | // res.data.fieldList = arr; |
| | | if (res.data.casesList) { |
| | | this.imageUrls = res.data.casesList.map(item => item.url) |
| | | } |
| | | this.item = res.data |
| | | } |
| | | }) |
| | |
| | | align-items: center; |
| | | .item-info-c-item-label { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | } |
| | | .item-info-c-item-val { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | font-size: 26rpx; |
| | | color: #333333; |
| | | } |
| | | } |
| | |
| | | width: 100%; |
| | | line-height: 40rpx; |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | font-size: 26rpx; |
| | | color: #333333; |
| | | margin-top: 20rpx; |
| | | text { |
| | |
| | | margin-right: 12rpx; |
| | | } |
| | | text { |
| | | line-height: 40rpx; |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | |
| | | width: 100%; |
| | | .card-list-item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | margin-bottom: 30rpx; |
| | | line-height: 40rpx; |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | .card-list-item-title { |
| | | font-weight: 500; |
| | | text { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | margin-bottom: 15rpx; |
| | | } |
| | | .card-list-item-text { |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | |
| | | </view> |
| | | <view class="cate"> |
| | | <view class="cate-item" @click="clickRow(1)"> |
| | | <text :style="{ fontWeight: (view === 1 || form.bustypeIds) ? 'bold' : '', color: (view === 1 || form.bustypeIds) ? '#222222' : '' }">{{form.bustypeIds ? form.bustypeName : 'åä¸åç±»å'}}</text> |
| | | <text :style="{ fontWeight: (view === 1 || form.bustypeIdList.length > 0) ? 'bold' : '', color: (view === 1 || form.bustypeIdList.length > 0) ? '#222222' : '' }">{{form.bustypeIdList.length > 0 ? form.bustypeName : 'åä¸åç±»å'}}</text> |
| | | <image src="/static/ar_open_sel8@2x.png" mode="widthFix" v-if="view === 1"></image> |
| | | <image src="/static/ar_open_sel@2x.png" mode="widthFix" v-else-if="view !== 1 && form.bustypeIds"></image> |
| | | <image src="/static/ar_open_sel@2x.png" mode="widthFix" v-else-if="view !== 1 && form.bustypeIdList.length > 0"></image> |
| | | <image src="/static/ar_open7@2x.png" mode="widthFix" v-else></image> |
| | | </view> |
| | | <view class="cate-item" @click="clickRow(2)"> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="item-info-d" v-if="item.isShow"> |
| | | {{item.zhankai ? item.content : item.contentCopy}}<text @click.stop="zhankai(item)">{{item.zhankai ? 'æ¶èµ·' : 'æ´å¤'}}</text> |
| | | <!-- @click.stop="zhankai(item)" --> |
| | | {{item.zhankai ? item.content : item.contentCopy}}<text>{{item.zhankai ? 'æ¶èµ·' : 'æ´å¤'}}</text> |
| | | </view> |
| | | <view class="item-info-d" v-else> |
| | | {{item.content}} |
| | |
| | | orderByType: '', |
| | | orderByName: '', |
| | | fieldIdList: [], |
| | | bustypeIds: '', |
| | | bustypeIdList: [], |
| | | bustypeName: '', |
| | | name: '' |
| | | }, |
| | |
| | | orderByType: this.form.orderByType ? this.form.orderByType : 3, |
| | | orderByName: this.form.orderByName, |
| | | fieldIdList: this.form.fieldIdList, |
| | | bustypeIds: this.form.bustypeIds, |
| | | bustypeIdList: this.form.bustypeIdList, |
| | | bustypeName: this.form.bustypeName, |
| | | name: this.form.name |
| | | } |
| | |
| | | }, |
| | | clickSearch(i, type) { |
| | | if (type === 1) { |
| | | this.form.bustypeIds = this.list1[i].id |
| | | if (this.list1[i].id) { |
| | | this.form.bustypeIdList = [this.list1[i].id] |
| | | } else { |
| | | this.form.bustypeIdList = [] |
| | | } |
| | | this.form.bustypeName = this.list1[i].name |
| | | this.list1.forEach((item, index) => { |
| | | item.active = index === i |
| | |
| | | } |
| | | } |
| | | .item-info-b { |
| | | width: 80%; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-items: center; |
| | |
| | | const install = (Vue, vm) => { |
| | | // è¯·æ±æ¦æªå¨ |
| | | uni.$u.http.interceptors.request.use((config) => { |
| | | // const Headtoken = vm.$store.state.token |
| | | // if (Headtoken) { |
| | | config.header['token'] = 'eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjE4MDU1MTU5NDUzIiwiZXhwIjoxNzcwMTg3MDgxfQ.xoNzXq98cZQEAlCO3UeJU6zn5obIdoCWxWLRJumlj4AAzVeBNQosrVfxZMBfYOAZKB7qBcM_4JiWlDCEyL8hrg'; |
| | | // } |
| | | const Headtoken = vm.$store.state.token |
| | | if (Headtoken) { |
| | | config.header['token'] = Headtoken; |
| | | } |
| | | return config |
| | | }, config => { |
| | | return Promise.reject(config) |