| | |
| | | <!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>åå¡ä¹å£°åå°ç®¡ç</title><link href="static/css/app.7d97a292.css" rel="preload" as="style"><link href="static/css/chunk-vendors.d9e68312.css" rel="preload" as="style"><link href="static/js/app.5b8aadbb.js" rel="preload" as="script"><link href="static/js/chunk-vendors.433308b2.js" rel="preload" as="script"><link href="static/css/chunk-vendors.d9e68312.css" rel="stylesheet"><link href="static/css/app.7d97a292.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but åå¡ä¹å£°åå°ç®¡ç doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.433308b2.js"></script><script src="static/js/app.5b8aadbb.js"></script></body></html> |
| | | <!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>é¼å
åæºåå°ç®¡ç</title><link href="static/css/app.7d97a292.css" rel="preload" as="style"><link href="static/css/chunk-vendors.d9e68312.css" rel="preload" as="style"><link href="static/js/app.5b8aadbb.js" rel="preload" as="script"><link href="static/js/chunk-vendors.433308b2.js" rel="preload" as="script"><link href="static/css/chunk-vendors.d9e68312.css" rel="stylesheet"><link href="static/css/app.7d97a292.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but åå¡ä¹å£°åå°ç®¡ç doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.433308b2.js"></script><script src="static/js/app.5b8aadbb.js"></script></body></html> |
| | |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| | | <meta name="viewport" content="width=device-width,initial-scale=1.0"> |
| | | <link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
| | | <title>åå¡ä¹å£°åå°ç®¡ç</title> |
| | | <title>é¼å
åæºåå°ç®¡ç</title> |
| | | </head> |
| | | <body> |
| | | <noscript> |
| | | <strong>We're sorry but åå¡ä¹å£°åå°ç®¡ç doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
| | | <strong>We're sorry but é¼å
åæºåå°ç®¡ç doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
| | | </noscript> |
| | | <div id="app"></div> |
| | | <!-- built files will be auto injected --> |
| | |
| | | export function shopDetail (id) { |
| | | return request.get(`/business/shop/${id}`) |
| | | } |
| | | // éç½®å¯ç |
| | | export function resetPwd (data) { |
| | | return request.post('/business/shop/resetPwd', data) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | |
| | | .el-transfer__buttons { |
| | | padding: 0 16px !important; |
| | | } |
| | | |
| | | .red{ |
| | | color: red; |
| | | } |
| | | .green{ |
| | | color: green; |
| | | } |
| | | .blue{ |
| | | color: blue; |
| | | }.orange{ |
| | | color: orange; |
| | | } |
| | | .table-header { |
| | | background-color: #F5F6F8!important; |
| | | th { |
| | |
| | | ::v-deep .el-table__cell { |
| | | height: 100% !important; |
| | | } |
| | | |
| | | .global-window { |
| | | .tip-header{ |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | margin-bottom: 20px; |
| | | } |
| | | .tip { |
| | | em { |
| | | font-style: normal; |
| | | color: $primary-color; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | .tip-warn { |
| | | margin: 4px 0 12px 0; |
| | | font-size: 12px; |
| | | color: #999; |
| | | i { |
| | | color: orange; |
| | | margin-right: 4px; |
| | | font-size: 14px; |
| | | position: relative; |
| | | top: 1px; |
| | | } |
| | | } |
| | | } |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="110px" label-suffix="ï¼" inline> |
| | | |
| | | <el-form-item label="åçåç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åçåç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå±æ¿å" prop="module"> |
| | | <!-- <el-form-item label="æå±æ¿å" prop="module"> |
| | | <el-select |
| | | v-model="form.module" |
| | | placeholder="è¯·éæ©æå±æ¿å" |
| | |
| | | label="åè±åå" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item>--> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | module: '', |
| | | module: 0, |
| | | type: '1', |
| | | sortnum: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, messgae: '请è¾å
¥åçåç§°', tigger: 'blur' } |
| | | { required: true, message: '请è¾å
¥åçåç§°', tigger: 'blur' } |
| | | ], |
| | | type: [ |
| | | { required: true, messgae: 'è¯·éæ©æå±æ¿å', tigger: 'change' } |
| | | { required: true, message: 'è¯·éæ©æå±æ¿å', tigger: 'change' } |
| | | ], |
| | | } |
| | | } |
| | |
| | | <el-form-item label="åç±»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå±æ¿å" prop="module"> |
| | | <!-- <el-form-item label="æå±æ¿å" prop="module"> |
| | | <el-select |
| | | v-model="form.module" |
| | | placeholder="è¯·éæ©æå±æ¿å" |
| | |
| | | label="åè±åå" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item>--> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | module: '', |
| | | module: 0, |
| | | type: '0', |
| | | sortnum: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, messgae: '请è¾å
¥åç±»åç§°', tigger: 'blur' } |
| | | { required: true, message: '请è¾å
¥åç±»åç§°', tigger: 'blur' } |
| | | ], |
| | | type: [ |
| | | { required: true, messgae: 'è¯·éæ©æå±æ¿å', tigger: 'change' } |
| | | { required: true, message: 'è¯·éæ©æå±æ¿å', tigger: 'change' } |
| | | ], |
| | | } |
| | | } |
| | |
| | | rules: { |
| | | cityId: [ |
| | | { required: true, validator: newRule, trigger: 'change' } |
| | | ], |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | |
| | | .catch(e => { |
| | | this.$tip.error(e) |
| | | }) |
| | | |
| | | }, |
| | | numInput() { |
| | | // ="" |
| | | this.form.sortnum = this.form.sortnum.replace(/^(0+)|[^\d]+/g,'') |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalAlertWindow |
| | | v-loading="isUploading" |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼" inline> |
| | | <el-form-item label="åºååç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" :maxlength="5" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©ç份" prop="name"> |
| | | <el-select v-model="form.areaIdList" placeholder="è¯·éæ©ç份" multiple filterable> |
| | | <el-option |
| | | v-for="item in province" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | import { listByParentId } from '@/api/business/areas' |
| | | |
| | | export default { |
| | | name: 'OperaLabelsWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalAlertWindow }, |
| | | data () { |
| | | return { |
| | | isUploading: false, |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | info: '', |
| | | type: 13, |
| | | module: 0, |
| | | sortnum: '', |
| | | areaIdList: [], |
| | | areaList: [] |
| | | }, |
| | | province: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/labels', |
| | | 'field.id': 'id' |
| | | }) |
| | | listByParentId({ type: 0, parentId: '' }) |
| | | .then(data => { |
| | | this.province = data |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | var that =this |
| | | this.title = title |
| | | this.visible = true |
| | | // this.isEdit = false |
| | | this.form.areaList = [] |
| | | this.form.areaIdList = [] |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | this.isEdit = true |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | that.form.areaIdList = [] |
| | | if (this.form.areaList && this.form.areaList.length) { |
| | | this.form.areaList.forEach(item => { |
| | | that.form.areaIdList.push(item.id) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | $image-width: 100px; |
| | | |
| | | ::v-deep .el-select { |
| | | width: 100%; |
| | | .el-input__inner { |
| | | width: 100%; |
| | | } |
| | | } |
| | | .avatar-uploader { |
| | | width: $image-width; |
| | | height: $image-width; |
| | | } |
| | | ::v-deep .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | width: $image-width; |
| | | height: $image-width; |
| | | overflow: hidden; |
| | | } |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409EFF; |
| | | } |
| | | .avatar-uploader-icon { |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: $image-width; |
| | | height: $image-width; |
| | | line-height: $image-width; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: $image-width; |
| | | height: $image-width; |
| | | display: block; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="576px" |
| | | title="éç½®å¯ç " |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip" v-if="user != null">为ç»éå <em>{{shop.realname}}</em> éç½®å¯ç </p> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="æ°å¯ç " prop="password" required> |
| | | <el-input v-model="form.password" type="password" placeholder="请è¾å
¥æ°å¯ç " maxlength="30" show-password></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { resetPwd } from '@/api/business/shop' |
| | | export default { |
| | | name: 'ResetPwdWindow', |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | isWorking: false, |
| | | visible: false, |
| | | shop: null, |
| | | form: { |
| | | password: '' |
| | | }, |
| | | rules: { |
| | | password: [ |
| | | { required: true, message: '请è¾å
¥å¯ç ' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | open (shop) { |
| | | this.shop = shop |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | }) |
| | | }, |
| | | // 确认éç½®å¯ç |
| | | confirm () { |
| | | if (this.isWorking) { |
| | | return |
| | | } |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | this.isWorking = true |
| | | resetPwd({ |
| | | id: this.user.id, |
| | | password: this.form.password |
| | | }) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å¯ç éç½®æå') |
| | | this.visible = false |
| | | this.$emit('success') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | @import "@/assets/style/variables.scss"; |
| | | // è§è²é
ç½® |
| | | .global-window { |
| | | .tip { |
| | | margin-bottom: 12px; |
| | | em { |
| | | font-style: normal; |
| | | color: $primary-color; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="common-header"> |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <div>åå¡ä¹å£°åå°ç®¡ç</div> |
| | | <div>é¼å
åæºåå°ç®¡ç</div> |
| | | <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> --> |
| | | </div> |
| | | <div class="user"> |
| | |
| | | <TableLayout :permissions="['business:areas:query']"> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <!-- <ul class="toolbar" v-permissions="['business:areas:create', 'business:areas:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaAreasWindow.open('æ°å»ºç')" icon="el-icon-plus" v-permissions="['business:areas:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:areas:delete']">å é¤</el-button></li> |
| | | </ul> --> |
| | | <el-table |
| | | ref="table" |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <el-table-column prop="name" label="å°åºåç§°" min-width="100px"> |
| | | <template slot-scope="{ row }"> |
| | | {{row.name}}<span v-if="row.type ===0 && row.bigAreaName !=null && row.bigAreaName !=''" class="green">ã{{row.bigAreaName}}ã</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" align="center" min-width="140px"></el-table-column> |
| | |
| | | <el-option v-for="item in labels" :key="item.id" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | <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="module"> |
| | | <!-- <el-form-item label="æå±æ¿å" prop="module"> |
| | | <el-select |
| | | v-model="searchForm.module" |
| | | placeholder="è¯·éæ©æå±æ¿å" |
| | |
| | | label="åè±åå" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item>--> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | <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="module"> |
| | | <!-- <el-form-item label="æå±æ¿å" prop="module"> |
| | | <el-select |
| | | v-model="searchForm.module" |
| | | placeholder="è¯·éæ©æå±æ¿å" |
| | |
| | | label="åè±åå" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item>--> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:labels: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> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaLabelsWindow.open('æ°å»ºå¤§åºä¿¡æ¯')" icon="el-icon-plus" v-permissions="['business:labels:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | border |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="åç±»åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areas" label="å
å«å°åº" min-width="200px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.areaList && row.areaList.length" > |
| | | <span v-for="item in row.areaList">{{item.name}}ï¼ </span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æè¿æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:labels:update', 'business:labels:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaLabelsWindow.open('ç¼è¾åºåä¿¡æ¯', row)" icon="el-icon-edit" v-permissions="['business:labels:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaLabelsWindow ref="operaLabelsWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaLabelsWindow from '@/components/business/OperaLabelsAreaWindow' |
| | | export default { |
| | | name: 'Labels', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaLabelsWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | type: 13 |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'æ ç¾ä¿¡æ¯è¡¨', |
| | | api: '/business/labels', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-table-column prop="name" label="çå®å§å" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcard" label="身份è¯å·" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="integral" label="åè±æ°é" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="integral" label="ç§¯åæ°é" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column label="ç¶æ" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | <TableLayout :permissions="['business:shop: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-form-item label="ç»å½è´¦å·" prop="name"> |
| | | <el-input v-model="searchForm.username" placeholder="请è¾å
¥ç»å½è´¦å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é宿¨¡å¼" prop="saleType" > |
| | | <!-- 0æ£å¸¸ 1ç¦ç¨ --> |
| | | <el-select |
| | | v-model="searchForm.status" |
| | | placeholder="è¯·éæ©åºéºç¶æ" |
| | | > |
| | | <el-option |
| | | :key="0" |
| | | :value="0" |
| | | label="æ£å¸¸" |
| | | ></el-option> |
| | | <el-option |
| | | :key="1" |
| | | :value="1" |
| | | label="ç¦ç¨" |
| | | ></el-option> |
| | | <el-select v-model="searchForm.saleType" placeholder="é宿¨¡å¼" @change="search" > |
| | | <el-option :key="0" :value="0" label="å¹³å°éºè´§" ></el-option> |
| | | <el-option :key="1" :value="1" label="èªä¸»éè´" ></el-option> |
| | | </el-select> |
| | | <!-- <el-input v-model="searchForm.status" placeholder="请è¾å
¥ç¶æ0æ£å¸¸ 1ç¦ç¨" @keypress.enter.native="search"></el-input> --> |
| | | </el-form-item> |
| | | <el-form-item label="æ¨è" prop="isrec"> |
| | | <!-- 0å¦ 1æ¯ --> |
| | | <el-select |
| | | v-model="searchForm.isrec" |
| | | placeholder="è¯·éæ©åºéºç¶æ" |
| | | > |
| | | <el-option |
| | | :key="0" |
| | | :value="0" |
| | | label="å¦" |
| | | ></el-option> |
| | | <el-option |
| | | :key="1" |
| | | :value="1" |
| | | label="æ¯" |
| | | ></el-option> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <!-- 0æ£å¸¸ 1ç¦ç¨ --> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©ç¶æ" @change="search" > |
| | | <el-option :key="0" :value="0" label="æ£å¸¸" ></el-option> |
| | | <el-option :key="1" :value="1" label="ç¦ç¨" ></el-option> |
| | | </el-select> |
| | | <!-- <el-input v-model="searchForm.isrec" placeholder="请è¾å
¥æ¯å¦æ¨è0å¦ 1æ¯" @keypress.enter.native="search"></el-input> --> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <!-- <el-button type="primary" @click="showDetail">æç´¢</el-button> --> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55"></el-table-column> --> |
| | | <el-table-column prop="name" label="åºéºåç§°" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="imgurl" label="åºéºLOGO" align="center" min-width="100px"> |
| | | <el-table-column prop="name" label="åç§°" fixed align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image> |
| | | <el-button type="text" @click="showDetail(row)">{{row.name}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="addr" label="å°å" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="é¨åºID" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="integral" label="ç°æç§¯å" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="orange">{{(row.integral || 0).toFixed(0)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="totalIntegral" label="累计积å" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="orange"> {{(row.totalIntegral || 0).toFixed(0)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="username" label="ç»å½è´¦å·" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="bigAreaName" label="æå±åºå" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaFullName" label="çå¸åº" align="center" min-width="150px" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.areas!=null">{{(row.areas.provinceName||'') + (row.areas.cityName||'') + (row.areas.name||'')}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="imgurl" label="é¨å¤´å¾" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if=" row.imgurl" :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image> |
| | | </template> |
| | | </el-table-column>--> |
| | | <el-table-column prop="addr" label="详ç»å°å" align="center" min-width="150px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="realname" label="è系人" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="èç³»çµè¯" align="center" min-width="150px"></el-table-column> |
| | | <el-table-column prop="saleType" label="é宿¨¡å¼" align="center" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.saleType == 1?'èªä¸»éè´':'å¹³å°éºè´§'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column label="è´è´£äºº" align="center" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | {{ `${row.nickName} ${row.memberPhone}` }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç»éåæ°æ®" align="center" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="showDetail(row)">æ¥ç</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="isrec" label="æ¯å¦æ¨è" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.isrec" |
| | | active-color="#13ce66" |
| | | inactive-color="#999" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | @change="statusChange(row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" align="center" min-width="100px"> |
| | | <el-table-column prop="status" label="ç¶æ" align="center" min-width="100px" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.status" |
| | |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!-- <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sex" label="æ§å« 0ç· 1女 2æªç¥" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcard" label="身份è¯å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardImg" label="èº«ä»½è¯æ£é¢ç
§" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardImgBack" label="身份è¯åé¢ç
§" min-width="100px"></el-table-column> |
| | | <el-table-column prop="businessImg" label="è¥ä¸æ§ç
§" min-width="100px"></el-table-column> |
| | | <el-table-column prop="longitude" label="å®ä½ç»åº¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="latitude" label="å®ä½ç»´åº¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaId" label="æå±å¿åºç¼ç ï¼å
³èareas)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="info" label="åºéºæè¿°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="origin" label="æ°æ®æ¥æº 0å°ç¨åºç³è¯· 1åå°å½å
¥" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberId" label="ç¨æ·ç¼ç ï¼å
³èmember表ï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="applyId" label="ç³è¯·ç¼ç ï¼å
³èshop_apply表ï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="looknum" label="æ»æµè§é" min-width="100px"></el-table-column> |
| | | <el-table-column prop="startTime" label="è¥ä¸å¼å§æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="endTime" label="è¥ä¸ç»ææ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="brandStory" label="åçæ
äº" min-width="100px"></el-table-column> --> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:shop:update', 'business:shop:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | min-width="200" |
| | | fixed="right" |
| | | align="center" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaShopWindow.open('ç¼è¾åºéº', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="$refs.operaShopWindow.open('ç¼è¾ç»éå', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="resetPwd(row)" icon="el-icon-edit" v-permissions="['business:shop:update']">éç½®å¯ç </el-button> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">å é¤</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaShopWindow ref="operaShopWindow" @success="handlePageChange"/> |
| | | <OperaShopDetailWindow ref="operaShopDetailWindow" /> |
| | | <ResetPwdShopWindow ref="resetPwdWindow"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaShopWindow from '@/components/business/OperaShopWindow' |
| | | import OperaShopDetailWindow from '@/components/business/OperaShopDetailWindow' |
| | | import { updateIsRecById } from '@/api/business/shop' |
| | | import { resetPwd, updateIsRecById } from '@/api/business/shop' |
| | | import ResetPwdShopWindow from '@/components/business/ResetPwdShopWindow' |
| | | export default { |
| | | name: 'Shop', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow }, |
| | | components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow, ResetPwdShopWindow }, |
| | | data () { |
| | | return { |
| | | |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | username: '', |
| | | status: '', |
| | | isrec: '', |
| | | saleType: '', |
| | | isrec: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | resetPwd (row) { |
| | | this.$dialog.messageWaring('确认é置该ç»éåã' + row.name + 'ãçç»å½å¯ç åï¼') |
| | | .then(() => { |
| | | resetPwd({ |
| | | id: row.id |
| | | }) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å¯ç éç½®æå') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | |
| | | }) |
| | | }) |
| | | }, |
| | | statusChange(row) { |
| | | updateIsRecById(row) |
| | | .then(() => { |
| | |
| | | showDetail(row) { |
| | | this.$refs.operaShopDetailWindow.open('åºéºè¯¦æ
', row) |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <div class="wrap"> |
| | | |
| | | <div class="introduce"> |
| | | <h2>åå¡ä¹å£°åå°ç®¡ç</h2> |
| | | <h2>é¼å
åæºåå°ç®¡ç</h2> |
| | | </div> |
| | | <div class="login"> |
| | | <h1>è´¦å·ç»å½</h1> |
| | |
| | | // 详ç»é
置请åèhttps://cli.vuejs.org/zh/config/#vue-config-js |
| | | const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length) |
| | | const webpack = require('webpack') |
| | | //const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length) |
| | | const path = require('path') |
| | | function resolve (dir) { |
| | | return path.join(__dirname, dir) |
| | | } |
| | | module.exports = { |
| | | publicPath: './', |
| | | outputDir: outputDir || 'test', |
| | | outputDir: 'dmmall_admin' || 'test', |
| | | assetsDir: 'static', |
| | | lintOnSave: false, |
| | | devServer: { |
| | |
| | | } |
| | | }, |
| | | configureWebpack: { |
| | | plugins: [ |
| | | new webpack.ProvidePlugin({ |
| | | 'window.Quill': 'quill/dist/quill.js', |
| | | Quill: 'quill/dist/quill.js' |
| | | }) |
| | | ] |
| | | resolve: { |
| | | alias: { |
| | | '@': resolve('src') |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.ResetSystemUserPwdDTO; |
| | | import com.doumee.service.business.ShopService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(shopService.findById(id)); |
| | | } |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("éç½®ç»éåå¯ç ") |
| | | @PostMapping("/resetPwd") |
| | | @RequiresPermissions("system:user:resetPwd") |
| | | public ApiResponse resetPwd ( @RequestBody Shop dto) { |
| | | shopService.resetPwd(dto); |
| | | return ApiResponse.success(null); |
| | | } |
| | | } |
| | |
| | | @ApiModelProperty(value = "èº«ä»½è¯æ£é¢ç
§") |
| | | @ExcelColumn(name="èº«ä»½è¯æ£é¢ç
§") |
| | | private String idcardImg; |
| | | @ApiModelProperty(value = "æ³äººå§å") |
| | | @ExcelColumn(name="æ³äººå§å") |
| | | private String legalPersonName; |
| | | @ApiModelProperty(value = "æ³äººçµè¯") |
| | | @ExcelColumn(name="æ³äººçµè¯") |
| | | private String legalPersonPhone; |
| | | |
| | | @ApiModelProperty(value = "身份è¯åé¢ç
§") |
| | | @ExcelColumn(name="身份è¯åé¢ç
§") |
| | |
| | | @ApiModelProperty(value = "è¥ä¸æ§ç
§") |
| | | @ExcelColumn(name="è¥ä¸æ§ç
§") |
| | | private String businessImg; |
| | | |
| | | @ApiModelProperty(value = "åå®¶ç¼å·") |
| | | @ExcelColumn(name="åå®¶ç¼å·") |
| | | private String code; |
| | | @ApiModelProperty(value = "ç»å½å") |
| | | @ExcelColumn(name="ç»å½å") |
| | | private String username; |
| | | @ApiModelProperty(value = "å¯ç ç") |
| | | @ExcelColumn(name="å¯ç ç") |
| | | private String salt; |
| | | @ApiModelProperty(value = "ç»å½å¯ç ") |
| | | @ExcelColumn(name="ç»å½å¯ç ") |
| | | private String password; |
| | | @ApiModelProperty(value = "å®£ä¼ æµ·æ¥") |
| | | @ExcelColumn(name="å®£ä¼ æµ·æ¥") |
| | | private String posterImg; |
| | | @ApiModelProperty(value = "é宿¨¡å¼ 0å¹³å°åºéº 1èªä¸»éè´") |
| | | @ExcelColumn(name="é宿¨¡å¼ 0å¹³å°åºéº 1èªä¸»éè´") |
| | | private Integer saleType; |
| | | @ApiModelProperty(value = "é宿¨¡å¼ 0å¹³å°åºéº 1èªä¸»éè´") |
| | | @ExcelColumn(name="é宿¨¡å¼ 0å¹³å°åºéº 1èªä¸»éè´") |
| | | private Integer bigAreaId; |
| | | @ApiModelProperty(value = "积åä½é¢") |
| | | @ExcelColumn(name="积åä½é¢") |
| | | private BigDecimal integral; |
| | | @ApiModelProperty(value = "积å累计") |
| | | @ExcelColumn(name="积å累计") |
| | | private BigDecimal totalIntegral; |
| | | @ApiModelProperty(value = "ç¶æ0æ£å¸¸ 1ç¦ç¨", example = "1") |
| | | @ExcelColumn(name="ç¶æ0æ£å¸¸ 1ç¦ç¨") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "å®ä½ç»åº¦", example = "1") |
| | | @ExcelColumn(name="å®ä½ç»åº¦") |
| | | private BigDecimal longitude; |
| | | |
| | | @ApiModelProperty(value = "å®ä½ç»´åº¦", example = "1") |
| | | @ExcelColumn(name="å®ä½ç»´åº¦") |
| | | private BigDecimal latitude; |
| | | |
| | | @ApiModelProperty(value = "æå±å¿åºç¼ç ï¼å
³èareas)", example = "1") |
| | | @ExcelColumn(name="æå±å¿åºç¼ç ï¼å
³èareas)") |
| | | private Integer areaId; |
| | | |
| | | @ApiModelProperty(value = "å°å") |
| | | @ExcelColumn(name="å°å") |
| | | private String addr; |
| | |
| | | @ApiModelProperty(value = "ç¨æ·çµè¯") |
| | | @TableField(exist = false) |
| | | private String memberPhone; |
| | | @ApiModelProperty(value = "çå¸åº") |
| | | @TableField(exist = false) |
| | | private Areas areas; |
| | | @ApiModelProperty(value = "æå±å¤§åºåç§°") |
| | | @TableField(exist = false) |
| | | private String bigAreaName; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°å") |
| | | @TableField(exist = false) |
| | | private String imgFullUrl; |
| | | @ApiModelProperty(value = "å®ä½ä¿¡æ¯") |
| | | @TableField(exist = false) |
| | | private String locationInfo; |
| | | |
| | | @ApiModelProperty(value = "é¨åºæå") |
| | | @TableField(exist = false) |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.MemberDTO; |
| | | import com.doumee.dao.web.dto.ResetSystemUserPwdDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopDataStatisticsDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopFaceDetailDTO; |
| | |
| | | * @return |
| | | */ |
| | | ShopDataStatisticsDTO getShopDataStatisticsDTO(Integer shopId); |
| | | |
| | | void resetPwd(Shop dto); |
| | | } |
| | |
| | | String areaName = Optional.ofNullable(areas).map(s -> s.getName()).orElse(""); |
| | | return cityName+areaName; |
| | | } |
| | | |
| | | public static Areas getAddressByAreaId(Integer areaId) { |
| | | if(areaId ==null){ |
| | | return null; |
| | | } |
| | | if(AREA_LIST!=null){ |
| | | for(Areas a : AREA_LIST){ |
| | | if(Constants.equalsInteger(a.getId(),areaId)){ |
| | | return a; |
| | | // return StringUtils.defaultString(a.getProvinceName(),"")+StringUtils.defaultString(a.getCityName(),"")+StringUtils.defaultString(a.getName(),"") |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public List<Areas> getCityList(Areas areas) { |
| | | //æ¥è¯¢å
¨é¨å叿°æ® |
| | |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.dto.IntegralDTO; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.service.business.AreasService; |
| | | import com.doumee.service.business.IntegralService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | |
| | | @Autowired |
| | | private IntegralJoinMapper integralJoinMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | |
| | | import com.doumee.dao.business.model.Goods; |
| | | import com.doumee.dao.business.model.Labels; |
| | | import com.doumee.dao.web.response.LabelsResponse; |
| | | import com.doumee.service.business.AreasService; |
| | | import com.doumee.service.business.LabelsService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | private AreasMapper areasMapper; |
| | | |
| | | @Autowired |
| | | private AreasService areasService; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | labels.setCreator(user.getId()); |
| | | labels.setCreateDate(new Date()); |
| | | labels.setEditor(user.getId()); |
| | | labels.setEditDate(labels.getCreateDate()); |
| | | labels.setIsdeleted(Constants.ZERO); |
| | | labels.setStatus(Constants.ZERO); |
| | | /* if(labels.getParentId()!=null){ |
| | |
| | | areasMapper.update(null,new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId,labels.getId()) |
| | | .in(Areas::getId,labels.getAreaIdList())); |
| | | areasService.cacheData(); |
| | | } |
| | | return labels.getId(); |
| | | } |
| | |
| | | labels.setEditDate(new Date()); |
| | | labels.setEditor(user.getId()); |
| | | labelsMapper.updateById(labels); |
| | | if(query!=null && Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | int num = areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, null) |
| | | .eq(Areas::getBigAreaId, labels.getId())); |
| | | if(num>0){ |
| | | areasService.cacheData(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Labels labels=new Labels(); |
| | | ids.stream().forEach(s->{ |
| | | int num =0; |
| | | for(Integer s : ids){ |
| | | labels.setId(s); |
| | | labels.setIsdeleted(Constants.ONE); |
| | | labels.setEditDate(new Date()); |
| | | labels.setEditor(user.getId()); |
| | | labelsMapper.updateById(labels); |
| | | }); |
| | | num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, null) |
| | | .eq(Areas::getBigAreaId, labels.getId())); |
| | | } |
| | | if(num>0){ |
| | | areasService.cacheData(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | labelsMapper.updateById(labels); |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | //å
æ¸
ç©ºåæ¥ææç»å®çæ°æ® |
| | | areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | int num = areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, null) |
| | | .eq(Areas::getBigAreaId, labels.getId())); |
| | | if( labels.getAreaIdList()!=null |
| | | &&labels.getAreaIdList().size()>0){ |
| | | //è®¾ç½®ææ°ç»å®çæ°æ® |
| | | areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, labels.getId()) |
| | | .in(Areas::getId, labels.getAreaIdList())); |
| | | } |
| | | if(num>0){ |
| | | areasService.cacheData(); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.LabelsMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ShopJoinMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.dto.MemberDTO; |
| | | import com.doumee.dao.web.dto.MultiFileDTO; |
| | | import com.doumee.dao.web.dto.ResetSystemUserPwdDTO; |
| | | import com.doumee.dao.web.dto.shop.*; |
| | | import com.doumee.service.business.*; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.commons.collections.MapUtils; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | |
| | | @Autowired |
| | | private ShopNewsService shopNewsService; |
| | | @Autowired |
| | | private LabelsMapper labelsMapper; |
| | | |
| | | @Autowired |
| | | private MultifileService multifileService; |
| | |
| | | isCreateParamValid(shop,user); |
| | | shop.setCreator(user.getId()); |
| | | shop.setCreateDate(new Date()); |
| | | shop.setEditor(user.getId()); |
| | | shop.setEditDate(shop.getCreateDate()); |
| | | shop.setIsdeleted(Constants.ZERO); |
| | | shop.setStatus(Constants.ZERO); |
| | | shop.setIsrec(Constants.ONE); |
| | | shop.setOrigin(Constants.ONE); |
| | | shop.setSaleType(Constants.formatIntegerNum(shop.getSaleType())); |
| | | String salt = RandomStringUtils.randomAlphabetic(6); |
| | | |
| | | shop.setPassword(shop.getCode()+"@123456"); |
| | | // çæå¯ç |
| | | shop.setPassword(Utils.Secure.encryptPassword(shop.getPassword(), salt)); |
| | | shop.setSalt(salt); |
| | | shopMapper.insert(shop); |
| | | return shop.getId(); |
| | | } |
| | | |
| | | public void isCreateParamValid(Shop shop , LoginUserInfo user){ |
| | | if(StringUtils.isBlank(shop.getName())|| |
| | | StringUtils.isBlank(shop.getImgurl())|| |
| | | shop.getMemberId()==null |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); |
| | | try { |
| | | String[] ss = shop.getLocationInfo().split(","); |
| | | shop.setLatitude(BigDecimal.valueOf(Double.parseDouble(ss[0]))); |
| | | shop.setLongitude(BigDecimal.valueOf(Double.parseDouble(ss[1]))); |
| | | }catch (Exception e){ |
| | | } |
| | | Member member=memberMapper.selectById(shop.getMemberId()); |
| | | if(StringUtils.isBlank(shop.getUsername()) |
| | | || StringUtils.isBlank(shop.getPhone()) |
| | | || StringUtils.isBlank(shop.getBusinessImg()) |
| | | || StringUtils.isBlank(shop.getStartTime()) |
| | | || shop.getLatitude()==null |
| | | || shop.getLongitude()==null |
| | | || shop.getBigAreaId()==null |
| | | || shop.getAreaId()==null |
| | | || StringUtils.isBlank(shop.getRealname()) |
| | | || StringUtils.isBlank(shop.getName()) |
| | | || StringUtils.isBlank(shop.getCode())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | if(AreasServiceImpl.getAddressByAreaId(shop.getAreaId()) ==null){ |
| | | |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"åºéºè´è´£äººä¸åå¨"); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"è¯·éæ©æ£ç¡®ççå¸åºä¿¡æ¯~"); |
| | | } |
| | | |
| | | Shop query=new Shop(); |
| | | query.setIsdeleted(Constants.ZERO); |
| | | query.setMemberId(shop.getMemberId()); |
| | | if(shop.getId()!=null){ |
| | | Shop result= shopMapper.selectOne(new QueryWrapper<>(query) |
| | | .last("limit 1") |
| | | ); |
| | | if(!Constants.equalsInteger(result.getId(),shop.getId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åºéºè´è´£äººå·²è¢«å
³èï¼è¯·ä»æ°éæ©è´è´£äºº"); |
| | | if(labelsMapper.selectById(shop.getBigAreaId()) ==null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"è¯·éæ©æ£ç¡®çåºåä¿¡æ¯~"); |
| | | } |
| | | }else{ |
| | | List<Shop> result= shopMapper.selectList(new QueryWrapper<>(query)); |
| | | if(org.apache.commons.collections.CollectionUtils.isNotEmpty(result)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åºéºè´è´£äººå·²åå¨ï¼è¯·ä»æ°éæ©è´è´£äºº"); |
| | | if(shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getName,shop.getName()) |
| | | .ne(shop.getId()!=null,Shop::getId,shop.getId()) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO))>0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"ç»éååç§°éå¤ï¼è¯·è¿åä¿®æ¹~"); |
| | | } |
| | | if(shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getCode,shop.getCode()) |
| | | .ne(shop.getId()!=null,Shop::getId,shop.getId()) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO))>0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"é¨åºIDéå¤ï¼è¯·è¿åä¿®æ¹~"); |
| | | } |
| | | |
| | | if(shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getUsername,shop.getUsername()) |
| | | .ne(shop.getId()!=null,Shop::getId,shop.getId()) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO))>0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"ç»å½è´¦å·éå¤ï¼è¯·è¿åä¿®æ¹~"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if(Objects.nonNull(shop)&&StringUtils.isNotBlank(shop.getImgurl())){ |
| | | shop.setImgFullUrl(path+shop.getImgurl()); |
| | | } |
| | | shop.setAreas(AreasServiceImpl.getAddressByAreaId(shop.getAreaId())); |
| | | if(shop.getLatitude()!=null && shop.getLongitude()!=null){ |
| | | shop.setLocationInfo(shop.getLatitude().doubleValue()+","+shop.getLongitude().doubleValue()); |
| | | } |
| | | MPJLambdaWrapper<ProductLabel> queryproduct = new MPJLambdaWrapper<>(); |
| | | queryproduct.selectAs(Labels::getName,ProductLabel::getLablesName); |
| | | queryproduct.eq(ProductLabel::getIsdeleted,Constants.ZERO); |
| | |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | |
| | | queryWrapper.selectAll(Shop.class); |
| | | queryWrapper.selectAs(Labels::getName,Shop::getBigAreaName); |
| | | queryWrapper.selectAs(Member::getNickname,Shop::getNickName); |
| | | queryWrapper.selectAs(Member::getImgurl,Shop::getMemberImgurl); |
| | | queryWrapper.selectAs(Member::getPhone,Shop::getMemberPhone); |
| | | |
| | | queryWrapper.leftJoin(Member.class,Member::getId,Shop::getMemberId); |
| | | queryWrapper.leftJoin(Labels.class,Labels::getId,Shop::getBigAreaId); |
| | | |
| | | queryWrapper.eq(Shop::getIsdeleted, Constants.ZERO); |
| | | |
| | | queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),s->s.like(Shop::getName,pageWrap.getModel().getName())); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()) ,Shop::getCode,pageWrap.getModel().getCode()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()) ,Shop::getName,pageWrap.getModel().getUsername()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()) ,Shop::getName,pageWrap.getModel().getName()); |
| | | queryWrapper.eq(pageWrap.getModel().getSaleType()!=null, Shop::getSaleType, pageWrap.getModel().getSaleType()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus()!=null, Shop::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.eq(pageWrap.getModel().getIsrec()!=null, Shop::getIsrec, pageWrap.getModel().getIsrec()); |
| | | queryWrapper.orderByDesc(Shop::getCreateDate); |
| | | IPage<Shop> result = shopJoinMapper.selectJoinPage(page, Shop.class, queryWrapper); |
| | | |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode(); |
| | | for(Shop model:result.getRecords()){ |
| | | model.setImgFullUrl(path); |
| | | model.setAreas( AreasServiceImpl.getAddressByAreaId(model.getAreaId())); |
| | | if(model.getLatitude()!=null && model.getLongitude()!=null){ |
| | | model.setLocationInfo(model.getLatitude().doubleValue()+","+model.getLongitude().doubleValue()); |
| | | } |
| | | |
| | | } |
| | | return PageData.from(result ); |
| | | } |
| | |
| | | shopScan.setMemberId(shop.getMemberId()); |
| | | shopScanService.create(shopScan); |
| | | } |
| | | |
| | | @Override |
| | | public void resetPwd(Shop dto) { |
| | | // æ¥è¯¢ç¨æ· |
| | | Shop shop = findById(dto.getId()); |
| | | if (shop == null) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | // ä¿®æ¹å¯ç |
| | | Shop updateUserDto = new Shop(); |
| | | updateUserDto.setId(dto.getId()); |
| | | updateUserDto.setPassword(Utils.Secure.encryptPassword( shop.getCode()+"@123456", shop.getSalt())); |
| | | shopMapper.updateById(updateUserDto); |
| | | } |
| | | } |
| | |
| | | nohup java -jar /usr/local/jars/dmmall/dmmall_web_api.jar > /dev/null 2>&1 & |
| | | |
| | | |
| | | |
| | | cd /usr/local/ortools/java_or-tools |
| | | |
| | | |
| | |
| | | { |
| | | "name" : "smallRoutine", |
| | | "appid" : "", |
| | | "appid" : "__UNI__7C0C90D", |
| | | "description" : "", |
| | | "versionName" : "1.0.0", |
| | | "versionCode" : "100", |
| | |
| | | "sdkConfigs" : {} |
| | | } |
| | | }, |
| | | "sassImplementationName": "node-sass", |
| | | /* SDKé
ç½® */ |
| | | "quickapp" : {}, |
| | | /* å¿«åºç¨ç¹æç¸å
³ */ |
| | |
| | | }, |
| | | "devDependencies": { |
| | | "node-sass": "^4.14.0", |
| | | "sass": "^1.95.1", |
| | | "sass-loader": "^8.0.2" |
| | | }, |
| | | "author": "uView", |
| | |
| | | "å端ç»ä»¶", |
| | | "éç¨ç»ä»¶" |
| | | ] |
| | | } |
| | | }, |
| | | "dependencies": {} |
| | | } |