| | |
| | | |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/preselect_interface/' |
| | | |
| | | <<<<<<< HEAD |
| | | VUE_APP_API = 'http://192.168.0.35:10022/' |
| | | ======= |
| | | # VUE_APP_API = 'http://192.168.0.15:10024/' |
| | | >>>>>>> 3fbfdefe98e5d35e32d74138ce73a1b4e2fe5465 |
| | | |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/preselect_web_interface/' |
| | | VUE_APP_API = 'https://dmtest.ahapp.net/preselect_web_interface/' |
| | | |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/preselect_interface/' |
| | |
| | | |
| | | // æ¥è¯¢èåæ |
| | | export function fetchMenuTree () { |
| | | return request.get('/system/menu/treeNodes') |
| | | return request.get('/system/menu/treeNodes?type=1') |
| | | } |
| | | |
| | | // æåº |
| | |
| | | <swiper style="width: 100%; height: 100%;" @change="handlechange" :current="mycurrent" :indicator-dots="false" :circular="true" :interval="1000" :duration="1000"> |
| | | <swiper-item v-for="(item,index) in imgList" :key="index"> |
| | | <view :class="['swiper-item',index==mycurrent ? 'active' : '']"> |
| | | <image :src="item" style="width: 100%;height: 100%;" mode="aspectFit" /> |
| | | <image :src="item" style="width: 150%;height: 150%;" mode="aspectFit" /> |
| | | </view> |
| | | </swiper-item> |
| | | </swiper> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="img" :style="{ opacity: opacity, zIndex: zindex }"> |
| | | <view class="img_content"> |
| | | <view class="img_content_tu"> |
| | | <image class="left" src="@/static/ic_left@2x.png" mode="widthFix" @click="jian"></image> |
| | | <view class="img_content_tu_nr"> |
| | | <swiper style="width: 100%; height: 100%;" @change="handlechange" :current="mycurrent" :indicator-dots="false" :circular="true" :interval="1000" :duration="1000"> |
| | | <swiper-item v-for="(item,index) in imgList" :key="index"> |
| | | <view :class="['swiper-item',index == mycurrent ? 'active' : '']"> |
| | | <image :src="item" style="width: 100%;height: 100%;" mode="aspectFit" /> |
| | | </view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> |
| | | <image class="right" src="@/static/ic_right@2x.png" mode="widthFix" @click="add"></image> |
| | | </view> |
| | | <view class="img_content_close"> |
| | | <image src="@/static/ic_close@2x.png" mode="widthFix" @click="close"></image> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | opacity: 0, |
| | | zindex: '-1', |
| | | mycurrent: 0 |
| | | } |
| | | }, |
| | | props: { |
| | | imgList: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | }, |
| | | methods: { |
| | | add() { |
| | | if (this.imgList.length - 1 === this.mycurrent) return |
| | | this.mycurrent++ |
| | | }, |
| | | jian() { |
| | | if (this.mycurrent === 0) return |
| | | this.mycurrent-- |
| | | }, |
| | | handlechange(e){ |
| | | this.mycurrent=e.detail.current |
| | | }, |
| | | open(i) { |
| | | this.mycurrent = i |
| | | this.zindex = 3 |
| | | this.opacity = 1 |
| | | }, |
| | | close() { |
| | | this.zindex = '-1' |
| | | this.opacity = 0 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .img { |
| | | width: 100vw; |
| | | height: 100vh; |
| | | background: rgba(0,0,0,0.4); |
| | | position: fixed; |
| | | transition: .2s; |
| | | top: 0; |
| | | left: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .img_content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | .img_content_tu { |
| | | display: flex; |
| | | align-items: center; |
| | | .img_content_tu_nr { |
| | | width: 600px; |
| | | height: 600px; |
| | | padding: 30px; |
| | | box-sizing: border-box; |
| | | border-radius: 8px; |
| | | margin: 0 32px; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: nowrap; |
| | | .swiper-item{ |
| | | width: 100%; |
| | | border-radius: 30rpx; |
| | | overflow: hidden; |
| | | // åè¿ç§å¤å¼ è½®æå¾åæ¶åºç°å¨ä¸å±çæ
åµä¸å°±ä¸è¦æå®widthäºï¼ä¸ç¶ä½ ä¼åç°previous-marginå next-marginä¼åºç°æ³ä¸å°çææ |
| | | // 妿æ³è¦è®¾ç½®å®½æ¯ä¸å¼ è½®æå¾ç宽度ï¼åªéè¦è®¾ç½®previous-marginånext-marginå°±å¯ä»¥äºï¼æ³è¦è®¾ç½®é«åº¦ç´æ¥æ¹ä¸é¢çheightå°±å¯ä»¥äº |
| | | // width: 450rpx; |
| | | height: 100%; |
| | | // transform: scale(1); |
| | | // transition: all 0.5s ease; |
| | | text-align: center; |
| | | // transition: all 0.5s ease-in-out; |
| | | } |
| | | .img_content_tu_nr_item { |
| | | width: 100%; |
| | | height: 600px; |
| | | image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | .left { |
| | | width: 80px; |
| | | height: 80px; |
| | | cursor: pointer; |
| | | } |
| | | .right { |
| | | width: 80px; |
| | | height: 80px; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .img_content_close { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-top: 40px; |
| | | image { |
| | | width: 60px; |
| | | height: 60px; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="no"> |
| | | <image src="@/static/default_nodata@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"noData" |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .no { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | // margin-top: 36px; |
| | | padding: 36px 0; |
| | | box-sizing: border-box; |
| | | image { |
| | | width: 268px; |
| | | height: 268px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | |
| | | import store from './store/index.js' |
| | | |
| | | import 'viewerjs/dist/viewer.css' |
| | | import Viewer from 'v-viewer' |
| | | |
| | | Vue.use(Viewer) |
| | | |
| | | Vue.prototype.$store = store; |
| | | |
| | | try { |
| | |
| | | { |
| | | <<<<<<< HEAD |
| | | "requires": true, |
| | | "lockfileVersion": 1, |
| | | "dependencies": { |
| | | "throttle-debounce": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", |
| | | "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==" |
| | | }, |
| | | "v-viewer": { |
| | | "version": "1.6.4", |
| | | "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.6.4.tgz", |
| | | "integrity": "sha512-LVkiUHpmsbsZXebeNXnu8krRCi5i2n07FeLFxoIVGhw8lVvTBO0ffpbDC6mLEuacCjrIh09HjIqpciwUtWE8lQ==", |
| | | "requires": { |
| | | "throttle-debounce": "^2.0.1", |
| | | "viewerjs": "^1.5.0" |
| | | } |
| | | }, |
| | | "viewerjs": { |
| | | "version": "1.11.6", |
| | | "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.6.tgz", |
| | | "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==" |
| | | } |
| | | } |
| | | ======= |
| | | "name": "h5", |
| | | "lockfileVersion": 3, |
| | | "requires": true, |
| | | "packages": {} |
| | | >>>>>>> 1ee5043af9ee5e53acb52a70fd93c4656e8bbb44 |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view class="productPage_shop" v-if="status === 1 && !pkcontent"> |
| | | <noData v-if="shopPageData.length === 0 && shopPageDataSou.length === 0" /> |
| | | <template v-else> |
| | | <view class="productPage_shop_item" v-for="(item, index) in isSOU ? shopPageDataSou : shopPageData" :key="index" @click="clickshoppageItem(item)"> |
| | | <view class="productPage_shop_item_img"> |
| | | <image :src="item.imgurl ? item.prefixUrl + item.imgurl : ''" mode="widthFix"></image> |
| | |
| | | <view class="productPage_shop_zw"></view> |
| | | <view class="productPage_shop_zw"></view> |
| | | <view class="productPage_shop_zw"></view> |
| | | </template> |
| | | </view> |
| | | <!-- v-if="status === 2" --> |
| | | <view class="productPage_parameter" v-if="isPK && pkcontent"> |
| | |
| | | <bigImg |
| | | ref="bigImg" |
| | | :imgList="imgList"/> |
| | | <!-- æ¥çå¤§å¾ --> |
| | | <bigImg1 |
| | | ref="bigImg1" |
| | | :imgList="imgList"/> |
| | | <!-- æç´¢ --> |
| | | |
| | | <!-- æç´¢ç»ä»¶ --> |
| | |
| | | |
| | | <script> |
| | | import bigImg from '@/components/bigImg.vue' |
| | | import bigImg1 from '@/components/bigImg1.vue' |
| | | import search from '@/components/search.vue' |
| | | import noData from '@/components/noData.vue' |
| | | import { mapState } from 'vuex' |
| | | import { categoryList, goodsList, brandList, h5Image, goodsPage, listForH5 } from '@/apis/index.js' |
| | | export default { |
| | |
| | | page: 1 |
| | | } |
| | | }, |
| | | components: { bigImg, search }, |
| | | components: { bigImg, search, noData, bigImg1 }, |
| | | onLoad() { |
| | | var that = this |
| | | // çå¬é®çç»åé® |
| | |
| | | }) |
| | | } |
| | | }) |
| | | this.$refs.bigImg.open(0) |
| | | // console.log(this.imgList) |
| | | this.$viewerApi({ |
| | | images: this.imgList, |
| | | }) |
| | | // this.$refs.bigImg.open(0) |
| | | // this.$refs.bigImg1.open(0) |
| | | }, |
| | | empty() { |
| | | this.shopList = [] |
| | |
| | | margin-top: 16px; |
| | | .commodityFrom_head { |
| | | width: 100%; |
| | | height: 60px; |
| | | height: 45px; |
| | | padding: 10px 8px; |
| | | box-sizing: border-box; |
| | | background: rgba(0,224,255,0.24) linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(0,0,0,0.21) 100%); |
| | |
| | | flex-direction: column; |
| | | .commodityFrom_body_content_item { |
| | | width: 100%; |
| | | height: 56px; |
| | | height: 45px; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 6px; |
| | |
| | | opacity: 0; |
| | | transform: translate(0%, 0%); |
| | | z-index: -1; |
| | | height: 56px; |
| | | height: 45px; |
| | | display: flex; |
| | | align-items: center; |
| | | background: rgba(0,224,255,0.3); |
| | |
| | | } |
| | | .commodityFrom_body_total { |
| | | width: 100%; |
| | | height: 56px; |
| | | height: 45px; |
| | | display: flex; |
| | | align-items: center; |
| | | .commodityFrom_body_total_item { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .productPage { |
| | | width: 100%; |
| | | padding: 0 22px; |
| | |
| | | margin-top: 16px; |
| | | .productPage_head { |
| | | width: 100%; |
| | | height: 60px; |
| | | height: 45px; |
| | | display: flex; |
| | | align-items: center; |
| | | background: rgba(0,224,255,0.34) linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(0,0,0,0.21) 100%); |
| | |
| | | password: this.from.password, |
| | | username: this.from.account |
| | | }).then(async(res) => { |
| | | alert(10) |
| | | this.$store.commit('setToken', res.data) |
| | | let user = await getUserInfo() |
| | | this.$store.commit('setUser', user.data) |
| | |
| | | # 任康 |
| | | # VUE_APP_API = 'http://192.168.0.15:10017/' |
| | | # ç¦æ¾ |
| | | VUE_APP_API = 'http://192.168.0.36:10011' |
| | | VUE_APP_API = 'http://192.168.0.36:10023' |
| | | # æ±è |
| | | VUE_APP_API = 'http://192.168.0.35:10011' |
| | | # VUE_APP_API = 'http://192.168.0.35:10023' |
| | | |
| | | #æµè¯æå¡å¨ |
| | | # #æµè¯æå¡å¨ |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/preselect_admin_interface' |
| | |
| | | # ç产ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/preselect_interface/' |
| | | |
| | | VUE_APP_API = 'http://127.0.0.1/' |
| | | VUE_APP_CONTEXT_PATH = '/admin' |
| | | VUE_APP_API_PREFIX = '/admin_interface' |
| | | |
| | | # VUE_APP_API = 'https://dm.ahapp.net/preselect_interface/' |
| | | |
| | | # VUE_APP_API = 'http://yx.doumee.com/preselect_interface/' |
| | | |
| | | # VUE_APP_API = 'http://mjyx.doumee.com/preselect_interface/' |
| | | # http://yx.ahapp.net/admin_interface/doc.html |
| | | # VUE_APP_API = 'https://yx.ahapp.net/admin_interface' |
| | | VUE_APP_API = 'http://127.0.0.1:10023/ |
| | |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build": "vue-cli-service build", |
| | | "build:pro": "vue-cli-service build", |
| | | "build:dev": "vue-cli-service build --mode staging", |
| | | "lint": "vue-cli-service lint", |
| | | "fix": "eslint --ext .js,.vue src --fix" |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/fileRecord/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å®¢æ·ä¼ä¸å
¨ç§°ï¼ä¸è¶
è¿30å" v-trim/> |
| | | ä¼ä¸åç§°éä¸å·¥åé¨é¨ç»è®°ä¿¡æ¯ä¸è´ |
| | | </el-form-item> |
| | | <el-form-item label="ä¼ä¸ç®ç§°" prop="shortName"> |
| | | <el-form-item label="客æ·ç®ç§°" prop="shortName"> |
| | | <el-input v-model="form.shortName" placeholder="请è¾å
¥ä¼ä¸ç®ç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç " prop="creditCode"> |
| | | <el-input v-model="form.creditCode" placeholder="请è¾å
¥ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç " v-trim/> |
| | | <el-form-item label="ç»ä¸ä¿¡ç¨ä»£ç " prop="creditCode"> |
| | | <el-input v-model="form.creditCode" placeholder="请è¾å
¥ç»ä¸ä¿¡ç¨ä»£ç " v-trim/> |
| | | ç»ä¸ä¿¡ç¨ä»£ç éä¸å·¥åé¨é¨ç»è®°ä¿¡æ¯ä¸è´ |
| | | </el-form-item> |
| | | <el-form-item label="ç»å½è´¦å·" prop="managerUserName"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="ä¸»ææ°ééå¶" prop="userNum"> |
| | | <el-input v-model="form.userNum" :disabled="!!this.form.id" placeholder="请è¾å
¥ä¸»ææ°ééå¶" v-trim/> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="éå®äººå" prop="salesmanId"> |
| | | <!-- <el-input v-model="form.salesmanId" placeholder="请è¾å
¥éå®äººåç¼ç " v-trim/> --> |
| | |
| | | linkname: '', |
| | | linkephone: '', |
| | | creditCode: '', |
| | | userNum: '', |
| | | userNum: 5, |
| | | oepnValidDate: '', |
| | | salesmanId: '' |
| | | }, |
| | |
| | | <style lang="scss" scoped> |
| | | .more { |
| | | margin-top: 40px; |
| | | margin-bottom: 10px; |
| | | .more-title { |
| | | font-weight: 600; |
| | | font-size: 18px; |
| | |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å®¢æ·ä¼ä¸å
¨ç§°ï¼ä¸è¶
è¿30å" v-trim/> |
| | | ä¼ä¸åç§°éä¸å·¥åé¨é¨ç»è®°ä¿¡æ¯ä¸è´ |
| | | </el-form-item> |
| | | <el-form-item label="ä¼ä¸ç®ç§°" prop="shortName"> |
| | | <el-input v-model="form.shortName" placeholder="请è¾å
¥ä¼ä¸ç®ç§°" v-trim/> |
| | | <el-form-item label="客æ·ç®ç§°" prop="shortName"> |
| | | <el-input v-model="form.shortName" placeholder="请è¾å
¥å®¢æ·ç®ç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç " prop="creditCode"> |
| | | <el-input v-model="form.creditCode" placeholder="请è¾å
¥ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç " v-trim/> |
| | | <el-form-item label="ç»ä¸ä¿¡ç¨ä»£ç " prop="creditCode"> |
| | | <el-input v-model="form.creditCode" placeholder="请è¾å
¥ç»ä¸ä¿¡ç¨ä»£ç " v-trim/> |
| | | ç»ä¸ä¿¡ç¨ä»£ç éä¸å·¥åé¨é¨ç»è®°ä¿¡æ¯ä¸è´ |
| | | </el-form-item> |
| | | <el-form-item label="ç»å½è´¦å·" prop="managerUserName"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="ä¸»ææ°ééå¶" prop="userNum"> |
| | | <el-input v-model="form.userNum" :disabled="!!this.form.id" placeholder="请è¾å
¥ä¸»ææ°ééå¶" v-trim/> |
| | | è¾å
¥0表示ä¸éå¶ |
| | | </el-form-item> |
| | | <el-form-item label="éå®äººå" prop="salesmanId"> |
| | | <!-- <el-input v-model="form.salesmanId" placeholder="请è¾å
¥éå®äººåç¼ç " v-trim/> --> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | import { findAllList } from '@/api/system/user' |
| | | import { loginNameRule, creditCode } from '@/utils/form' |
| | | export default { |
| | | name: 'OperaCompanyWindow', |
| | | extends: BaseOpera, |
| | |
| | | linkname: '', |
| | | linkephone: '', |
| | | creditCode: '', |
| | | userNum: '', |
| | | userNum: '5', |
| | | oepnValidDate: '', |
| | | salesmanId: '' |
| | | }, |
| | |
| | | { required: true, message: '请è¾å
¥å®¢æ·ä¼ä¸å
¨ç§°', tigger: 'blur'} |
| | | ], |
| | | managerUserName: [ |
| | | { required: true, message: '请è¾å
¥ç»å½è´¦å·', tigger: 'blur'} |
| | | { required: true, validator: loginNameRule, message: '请è¾å
¥ç»å½è´¦å·', tigger: 'blur'} |
| | | ], |
| | | creditCode: [ |
| | | { validator: creditCode, trigger: 'blur' } |
| | | ], |
| | | openUserNum: [ |
| | | { pattern: /^[0-9]+$/, message: 'åªå¯ä»¥è¾å
¥æ°å', trigger: 'change' } |
| | |
| | | .then(res => { |
| | | this.sales = res |
| | | }) |
| | | }, |
| | | methods: { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | let data = new Date(new Date().getTime() + 31536000000) |
| | | this.form.oepnValidDate = `${data.getFullYear()}-${data.getMonth() +1}-${data.getDate()}` |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.multifileList.forEach(item => { |
| | | item.url = item.filefullurl |
| | | }) |
| | | }) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .more { |
| | | margin-top: 40px; |
| | | |
| | | .more-title { |
| | | font-weight: 600; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | ::v-deep .el-input { |
| | |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" width="800px" |
| | | v-loading="isUploading"> |
| | | <el-form :model="form" ref="form" label-width="120px" :rules="rules"> |
| | | <div style="font-size: 18px;font-weight: bold;">åºæ¬ä¿¡æ¯</div> |
| | | <div style="font-size: 18px;font-weight: bold; margin-bottom: 10px;">åºæ¬ä¿¡æ¯</div> |
| | | <el-form-item label="åååç§°" prop="name"> |
| | | <el-input v-model="form.name" maxlength="50" placeholder="请è¾å
¥åååç§°ï¼ä¸è¶
è¿50个å" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="åååç" prop="brandId"> |
| | | <el-select v-model="form.brandId" placeholder="è¯·éæ©ï¼åé"> |
| | | <el-select v-model="form.brandId" filterable placeholder="è¯·éæ©ï¼åé"> |
| | | <el-option v-for="item in brandList()" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ååç±»å«" prop="categoryId"> |
| | | <el-select v-model="form.categoryId" placeholder="è¯·éæ©ï¼åé" @change="categorySelect"> |
| | | <el-select v-model="form.categoryId" filterable placeholder="è¯·éæ©ï¼åé" @change="categorySelect"> |
| | | <el-option v-for="item in categoryList()" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | åªè½ä¸ä¼ å¾çæ ¼å¼ï¼pngæ ¼å¼ï¼å»ºè®®å°ºå¯¸600*600px |
| | | </el-form-item> |
| | | <template v-if="form.baseGoodsParamList && form.baseGoodsParamList.length > 0"> |
| | | <div style="font-size: 18px;font-weight: bold;">忰屿§å¼é
ç½® <span |
| | | <div style="font-size: 18px;font-weight: bold; margin-bottom: 10px;">忰屿§å¼é
ç½® <span |
| | | style="font-size: 13px; font-weight: 500;">æéé
ç½®å½åååç产ååæ°å¼ï¼åä¸ªåæ°å¼ä¸è¶
è¿30个å</span></div> |
| | | <el-form-item :label="item.name" v-for="(item, index) in form.baseGoodsParamList" :key="index"> |
| | | <el-input v-model="item.val" maxlength="30" type="text" placeholder="请è¾å
¥" v-trim /> |
| | |
| | | |
| | | <template> |
| | | <el-dialog |
| | | top="10vh" |
| | | class="global-window" |
| | | title="title" |
| | | :visible="visible" |
| | |
| | | <el-radio label="0">女</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="头å" prop="avatar" required> |
| | | <!-- <el-form-item label="头å" prop="avatar" required> |
| | | <el-radio-group v-model="form.avatar" class="form-item-avatar"> |
| | | <el-radio label="https://dmtest.ahapp.net/preselectfile/man.png" border><img src="https://dmtest.ahapp.net/preselectfile/man.png" alt=""></el-radio> |
| | | <el-radio label="https://dmtest.ahapp.net/preselectfile/woman.png" border><img src="https://dmtest.ahapp.net/preselectfile/woman.png" alt=""></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item v-if="form.id == null" label="åå§å¯ç " prop="password" required> |
| | | <el-input v-model="form.password" type="password" placeholder="请è¾å
¥åå§å¯ç " maxlength="30" show-password/> |
| | | </el-form-item> |
| | |
| | | empNo: '', // å·¥å· |
| | | departmentId: null, // æå±é¨é¨ID |
| | | positionIds: [], // æå±å²ä½IDé |
| | | avatar: '/avatar/man.png', // 头å |
| | | // avatar: '/avatar/man.png', // 头å |
| | | password: '', // å¯ç |
| | | mobile: '', // ææºå·ç |
| | | email: '', // é®ç®± |
| | |
| | | // éªè¯ææºå·ç |
| | | |
| | | export function checkMobile (rule, value, callback) { |
| | | if (value == null || value.trim() === '') { |
| | | callback(new Error('ææºå·ç ä¸è½ä¸ºç©º')) |
| | | if (rule.required) { |
| | | callback(new Error('请è¾å
¥ææºå·')) |
| | | } else { |
| | | callback() |
| | | } |
| | | return |
| | | } |
| | | if (!/^1\d{10}$/.test(value)) { |
| | | callback(new Error('ææºå·ç æ ¼å¼ä¸æ£ç¡®')) |
| | | let re = /^[0-9]{11}$/; |
| | | var result = re.test(value); |
| | | if(!result) { |
| | | callback(new Error('请è¾å
¥æ£ç¡®çææºå·')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | |
| | | export function checkPhone(rule, value, callback) { |
| | | //ææºå·ï¼13ï¼14ï¼15ï¼17ï¼18ï¼19å·æ®µ |
| | | const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/ |
| | | //åºè¯ï¼åºå·(3-4ä½)-å·ç (7-9ä½) |
| | | const mobReg = /(^[0-9]{3,4}-[0-9]{7,9}$)/ |
| | | //æ¾³é¨çµè¯å·ç : 28å¼å¤´ï¼åé¢è·6使°åï¼åºå·ä¸º853 |
| | | const macaoMobReg = /^(853)?28\d{6}$/ |
| | | //æ¾³é¨ææºå·ç ï¼6å¼å¤´ï¼åé¢è·7使°åï¼åºå·ä¸º853 |
| | | const macaoPhoneReg = /^(853)?6\d{7}$/ |
| | | //åæ¶æ¯æææºå·ç åçµè¯å·ç |
| | | const macaoReg = /^(853)?(?:28\d{6}|6\d{7})$/ |
| | | if (!value) { |
| | | callback(new Error('çµè¯å·ç ä¸è½ä¸ºç©º')) |
| | | } else if (phoneReg.test(value)||mobReg.test(value)||macaoReg.test(value)) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('请è¾å
¥æ£ç¡®çµè¯å·ç ')) |
| | | } |
| | | } |
| | | |
| | | export function loginNameRule (rule, value, callback) { |
| | | if (value == null || value.trim() === '') { |
| | | if (rule.required) { |
| | | callback(new Error('请è¾å
¥è´¦å·')) |
| | | } else { |
| | | callback() |
| | | } |
| | | return |
| | | } |
| | | let re =/^[\u4e00-\u9fa5a-zA-Z0-9]+$/ |
| | | var result = re.test(value) |
| | | if(!result) { |
| | | callback(new Error('请è¾å
¥æ£ç¡®çè´¦å·')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | |
| | | export function nameRule (rule, value, callback) { |
| | | if (value == null || value.trim() === '') { |
| | | if (rule.required) { |
| | | callback(new Error('请è¾å
¥åå')) |
| | | } else { |
| | | callback() |
| | | } |
| | | return |
| | | } |
| | | callback() |
| | | } |
| | | export function creditCode (rule, value, callback) { |
| | | if (value == null || value.trim() === '') { |
| | | if (rule.required) { |
| | | callback(new Error('请è¾å
¥ç¤¾ä¼ä¿¡ç¨ä»£ç ')) |
| | | } else { |
| | | callback() |
| | | } |
| | | return |
| | | } |
| | | let re = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/ |
| | | var result = re.test(value) |
| | | if(!result) { |
| | | callback(new Error('请è¾å
¥æ£ç¡®ç社ä¼ä¿¡ç¨ä»£ç ')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | |
| | | // éªè¯é®ç®± |
| | | export function checkEmail (rule, value, callback) { |
| | |
| | | // 设置æä½å¹³å° |
| | | config.headers['eva-platform'] = `pc-${pkg.version}` |
| | | // 设置认è¯å¤´ |
| | | const authToken = Cookies.get('eva-auth-token') |
| | | const authToken = Cookies.get('doumee-auth-token') |
| | | if (authToken != null) { |
| | | config.headers['eva-auth-token'] = authToken |
| | | config.headers['doumee-auth-token'] = authToken |
| | | } |
| | | return config |
| | | }, function (error) { |
| | |
| | | <el-table-column prop="priceRate" label="å ä»·ç³»æ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç (ååº)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <el-table-column v-if="containPermissions(['business:category:update'])" prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch v-model="row.status" @change="changeStatus(row)" :active-value="0" :inactive-value="1"> |
| | | </el-switch> |
| | |
| | | status: item.status |
| | | }).then(res => { |
| | | this.$tip.apiSuccess('æ´æ°æå') |
| | | }).finally(() => { |
| | | // this.search() |
| | | }).catch (err => { |
| | | this.$message.error(err) |
| | | }) |
| | | .finally(() => { |
| | | this.handlePageChange() |
| | | }) |
| | | }, |
| | | edit(id) { |
| | |
| | | <TableLayout :permissions="['business:company: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="shortName"> |
| | | <el-input v-model="searchForm.shortName" placeholder="请è¾å
¥ä¼ä¸ç®ç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="管çåè´¦å·" prop="managerUserName"> |
| | | <el-input v-model="searchForm.managerUserName" placeholder="请è¾å
¥ç®¡çåè´¦å·" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="ç»å½è´¦å·" prop="managerUserName"> |
| | | <el-input v-model="searchForm.managerUserName" placeholder="请è¾å
¥ç»å½è´¦å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æææ" prop="oepnValidDate"> |
| | | <el-date-picker type="daterange" v-model="oepnValidDate" value-format="yyyy-MM-dd" start-placeholder="å¼å§æ¥æ" |
| | |
| | | <!-- <el-table-column type="selection" width="55" align="center"></el-table-column> --> |
| | | <el-table-column prop="id" label="ä¼ä¸ç¼å·" min-width="80px" align="center"></el-table-column> |
| | | <el-table-column prop="name" label="ä¼ä¸åç§°" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="managerUserName" label="管çåè´¦å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="managerUserName" label="ç»å½è´¦å·" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="linkname" label="è系人" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="linkephone" label="è系人çµè¯" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="oepnValidDate" label="ç¨æææ" min-width="140px" align="center"></el-table-column> |
| | | <el-table-column prop="userNum" label="ä¸»ææ°ééå¶" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="oepnValidDate" label="æææ" min-width="140px" align="center"></el-table-column> |
| | | <el-table-column prop="userNum" label="主æè´¦å·éå¶" min-width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.userNum || 'ä¸é' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="empUserNum" label="åå·¥æ°" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="salesmanRealName" label="éå®äººå" min-width="100px" align="center"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px" align="center"> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:filerecord: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> --> |
| | | |
| | | <el-form-item label="æä»¶å¤¹åç§°" prop="folder"> |
| | | <el-input v-model="searchForm.folder" placeholder="请è¾å
¥æä»¶å¤¹åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="OSSæä»¶key" prop="keyval"> |
| | | <el-input v-model="searchForm.keyval" placeholder="请è¾å
¥OSSæä»¶key" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" clearable placeholder="è¯·éæ©ç¶æ"> |
| | | <el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </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> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | border |
| | | stripe |
| | | > |
| | | <el-table-column type="index" :index="newIndex" label="åºå·" width="80px" align="center"></el-table-column> |
| | | <el-table-column prop="name" label="æä»¶" width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.url" style="width: 70px; height: 70px" :src="row.url" |
| | | :preview-src-list="[row.url]" fit="cover"></el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="folder" label="æä»¶å¤¹åç§°" width="140px" align="center"></el-table-column> |
| | | <el-table-column prop="keyval" label="OSSæä»¶key" min-width="120px" align="center"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" width="100px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <!-- 0æªä¸ä¼ 1å·²ä¸ä¼ 2ä¸ä¼ 失败 --> |
| | | {{ row.status == 0 ? 'æªä¸ä¼ ' : row.status == 1 ? 'å·²ä¸ä¼ ' : 'ä¸ä¼ 失败' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" width="150px" align="center"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" width="150px" align="center"></el-table-column> |
| | | <!-- |
| | | <el-table-column prop="editor" 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="info" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="objId" label="å
³è对象ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="ç±»å0å¾ç 1è§é¢ 2å
¶ä»" min-width="100px"></el-table-column> --> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'FileRecord', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | name: '', |
| | | info: '', |
| | | objId: '', |
| | | type: '', |
| | | folder: '', |
| | | status: '', |
| | | keyval: '' |
| | | }, |
| | | statusList: [ |
| | | // 0æªä¸ä¼ 1å·²ä¸ä¼ 2ä¸ä¼ 失败 |
| | | { name: 'æªä¸ä¼ ', id: 0 }, |
| | | { name: 'å·²ä¸ä¼ ', id: 1 }, |
| | | { name: 'ä¸ä¼ 失败', id: 2 } |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'éä»¶ä¸ä¼ è¿åº¦è¡¨', |
| | | api: '/business/fileRecord', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | newIndex(index) { |
| | | return (this.tableData.pagination.pageIndex - 1) * 10 + index + 1 |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | </li> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" |
| | | @click="$refs.selectProduct.open('鿩平å°åå')">鿩平å°åå</el-button> --> |
| | | <li v-permissions="['business:basegoods:exportExcel']"> |
| | | <li v-permissions="['business:basegoods:exportExcel', 'business:goods:delete']"> |
| | | <ImportButton text="导å
¥" template-name="goods_import_modle.xlsx" |
| | | template-path="/template/goods_import_modle.xlsx" action="/business/baseGoods/importExcel" |
| | | @success="search" /> |
| | | </li> |
| | | <li> |
| | | <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(0)">æ¹é䏿¶</el-button> |
| | | </li> |
| | | <li> |
| | | <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(1)">æ¹é䏿¶</el-button> |
| | | <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:goods:delete']">å é¤</el-button></li> --> |
| | | </li> |
| | | <li v-permissions="['business:goods:delete']"><el-button @click="deleteByIdInBatch" style="color: red;">æ¹éå é¤</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe border :header-cell-style="rowStyle" |
| | | :cell-style="rowStyle" @selection-change="handleSelectionChange"> |
| | |
| | | <el-table-column prop="zdPrice" label="æå¯¼ä»·ï¼å
ï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="price" label="éè´ä»·(å
)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <el-table-column prop="status" v-if="containPermissions(['business:basegoods:update'])" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch v-model="row.status" @change="changeStatus(row)" active-color="#13ce66" inactive-color="#ff4949" |
| | | :active-value="0" :inactive-value="1"> |
| | |
| | | import OperaGoodsWindow from '@/components/business/OperaGoodsWindow' |
| | | import selectProduct from '@/components/business/selectProduct' |
| | | import ImportButton from '@/components/common/ImportButton' |
| | | import { brand, baseCategory, importExcel } from '@/api/system/common.js' |
| | | import { brand, baseCategory } from '@/api/system/common.js' |
| | | import { updateStatus, queryById, exportDoc } from '@/api/business/goods.js' |
| | | export default { |
| | | name: 'Goods', |
| | |
| | | this.getcategory() |
| | | }, |
| | | methods: { |
| | | handleSelectionChange(e) { |
| | | let arr = e.map(item => item.id) |
| | | this.ids = arr.join(',') |
| | | this.idList = arr; |
| | | }, |
| | | // handleSelectionChange(e) { |
| | | // let arr = e.map(item => item.id) |
| | | // this.ids = arr.join(',') |
| | | // this.idList = arr; |
| | | // }, |
| | | // æ¹éä¸ä¸æ¶ |
| | | bulkOperation(type) { |
| | | if (!this.ids) { |
| | | this.$message.warning({ message: 'è³å°éæ©ä¸é¡¹å
容' }) |
| | | if (this.tableData.selectedRows.length === 0) { |
| | | this.$tip.warning('请è³å°éæ©ä¸æ¡æ°æ®') |
| | | return |
| | | } |
| | | let idList = this.tableData.selectedRows.map(item => item.id) |
| | | updateStatus({ |
| | | idList: this.idList, |
| | | idList, |
| | | status: type |
| | | }).then(res => { |
| | | this.$tip.apiSuccess('æä½æå'); |
| | | // this.$message.success({ message:res.message }) |
| | | this.search() |
| | | this.handlePageChange() |
| | | }) |
| | | }, |
| | | downloadFile() { |
| | |
| | | status: item.status |
| | | }).then(res => { |
| | | this.$tip.apiSuccess('æ´æ°æå') |
| | | }).finally(() => { |
| | | // this.search() |
| | | }) |
| | | .catch (err => { |
| | | this.$message.error(err) |
| | | } ) |
| | | .finally(() => { |
| | | this.handlePageChange() |
| | | }) |
| | | }, |
| | | getbrand() { |
| | |
| | | :data="tableData.list" |
| | | :default-sort = "{prop: 'createTime', order: 'descending'}" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="avatar" label="头å" width="80px" class-name="table-column-avatar" fixed="left"> |
| | | <!-- <el-table-column prop="avatar" label="头å" width="80px" class-name="table-column-avatar" fixed="left"> |
| | | <template slot-scope="{row}"> |
| | | <img :src="row.avatar == null ? '/static/avatar/man.png' : row.avatar"> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column prop="realname" label="å§å" min-width="100px" fixed="left"></el-table-column> |
| | | <el-table-column prop="username" label="ç¨æ·å" min-width="120px"></el-table-column> |
| | | <el-table-column prop="empNo" label="å·¥å·" sortable="custom" sort-by="EMP_NO" min-width="80px"></el-table-column> |