| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- <template>
- <view class="input_content">
- <view class="input_content_textarea">
- <textarea v-model="prodectContent.store_name" :placeholder="title" placeholder-class="placeholderStyle" :maxlength="maxLength"/>
- <view><text v-if="prodectContent.store_name">{{prodectContent.store_name.length}}</text><text v-else>0</text>/{{maxLength}}</view>
- </view>
- <view class="input_content_photo">
- <view class="input_content_photo_adPh" v-for="(item, index) in prodectContent.imageList" :key="index">
- <image :src="item" class="myimg2 photos"></image>
- <view class="input_content_photo_adPh_jiao" @click="deleteImage(index)"><image src="../static/images/close.png" mode=""></image></view>
- </view>
- <view v-if="isUpload" class="input_content_photo_adPh" @click="clk">
- <view><image src="../static/images/creamer.png" mode="widthFix"></image></view>
- <view>添加图片</view>
- </view>
- </view>
- <view class="input_content_describe" v-if="isShowDescribe">
- <view class="input_content_describe_title">
- <view class="input_content_describe_title_msg">商品简介</view>
- <view class="input_content_describe_title_num">
- <text v-if="prodectContent.store_info">{{prodectContent.store_info.length}}</text>
- <text v-else>0</text>/200
- </view>
- </view>
- <view class="input_content_describe_textarea"><textarea v-model="prodectContent.store_info" value="" placeholder="请填写商品简介" placeholderClass="placeholderClass" maxlength="200"/></view>
- </view>
- <view class="input_content_keyword" v-if="isShowDescribe">
- <view class="input_content_keyword_label">关键字</view>
- <view class="input_content_keyword_value"><input v-model="prodectContent.keyword" type="text" value="" placeholder="填写关键字" /></view>
- </view>
- <avatar @upload="doUpload" @getName="getImgName" quality="1" ref="avatar" selWidth="250upx" selHeight="250upx"></avatar>
- </view>
- </template>
- <script>
- import { chooseImage } from '../../../libs/uniApi.js';
- import { TOKENNAME, HTTP_REQUEST_URL } from '../../../config/app.js';
- import avatar from "@/components/yq-avatar/yq-avatar.vue";
- import store from '@/store';
- export default {
- components: {
- avatar
- },
- props: {
- isShowDescribe: {
- type: Boolean,
- default: false
- },
- isMultiple: {
- type: Boolean,
- default: true
- },
- maxLength: {
- type: Number,
- default: 12
- },
- title: {
- type: String,
- default: ''
- },
- prodectContent: {
- type: Object,
- default: ()=>{return {imageList: []}}
- }
- },
- data() {
- return {
- uploadImg: this.prodectContent.imageList,
- isUpload: true,
- imgName: ""
- };
- },
- watch: {
- prodectContent: {
- handler(val) {
- this.$emit('getProductContent', val);
- },
- deep: true
- },
- uploadImg: {
- handler(val) {
- if(this.isMultiple){
- this.isUpload = val.length<6?true : false
- }else{
- this.isUpload = val.length <1?true : false
- }
- },
- deep: true
- }
- },
- mounted() {
-
- },
- methods: {
- handleChooseImage() {
- let that = this;
- that.$util.uploadImageOne('upload/image', function (res) {
- that.uploadImg.push(res.data.path);
- that.$set(that.prodectContent,'imageList',that.uploadImg);
- });
- },
- clk() {
- let avatar = this.$refs.avatar;
- avatar.fChooseImg(1,{selWidth: '350upx', selHeight: '350upx', inner: true});
- },
- doUpload(rsp) {
- console.log(rsp);
- let that = this
- uni.uploadFile({
- url: HTTP_REQUEST_URL + '/api/upload/image/field',
- filePath: rsp.path,
- name: 'field',
- formData: {
- 'filename': rsp.path,
- 'name': that.imgName
- },
- header: {
- // #ifdef MP
- "Content-Type": "multipart/form-data",
- // #endif
- [TOKENNAME]: 'Bearer ' + store.state.app.token
- },
- success: (uploadFileRes) => {
- console.log(uploadFileRes.data);
- let imgData = JSON.parse(uploadFileRes.data)
- that.prodectContent.imageList.push(imgData.data.path)
- },
- complete(res) {
- console.log(res)
- }
- });
- },
- getImgName(name){
- this.imgName = name
- },
- // 删除图片
- deleteImage(index) {
- this.prodectContent.imageList.splice(index, 1);
- this.uploadImg = this.prodectContent.imageList
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- .input_content {
- background: #fff;
- padding: 20rpx 40rpx 40rpx 30rpx;
- width: 710rpx;
- margin: auto;
- box-sizing: border-box;
- border-radius: 10rpx;
- &_textarea {
- border-bottom: 1px solid #eeeeee;
- padding-bottom: 19rpx;
- textarea {
- height: 114rpx;
- }
- > view {
- text-align: right;
- color: #666666;
- font-size: 24rpx;
- }
- }
- &_photo {
- margin-top: 41rpx;
- display: flex;
- flex-wrap: wrap;
- .photos{
- width: 156rpx;
- height: 156rpx;
- }
- &_adPh {
- position: relative;
- width: 156rpx;
- height: 156rpx;
- border: 1px solid #dddddd;
- display: flex;
- flex-direction: column;
- justify-content: center;
- border-radius: 8rpx;
- margin-right: 30rpx;
- margin-bottom: 30rpx;
- > image {
- height: 100%;
- margin: auto;
- }
- > view:nth-child(1) {
- height: 37rpx;
- margin-bottom: 16rpx;
- display: flex;
- justify-content: center;
- image {
- width: 45rpx;
- display: block;
- }
- }
- > view:nth-child(2) {
- text-align: center;
- color: #bbbbbb;
- font-size: 24rpx;
- }
- &_jiao {
- position: absolute;
- top: -14rpx;
- right: -14rpx;
- width: 40rpx;
- height: 40rpx;
- background: #e93323;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 50%;
- image {
- width: 16rpx;
- height: 16rpx;
- }
- }
- }
- }
- &_describe {
- border-top: 1px solid #eeeeee;
- padding-top: 30rpx;
- padding-bottom: 47rpx;
- border-bottom: 1px solid #eeeeee;
- &_title {
- display: flex;
- align-items: center;
- justify-content: space-between;
- &_msg {
- color: #333333;
- font-size: 30rpx;
- }
- &_num {
- color: #666666;
- font-size: 24rpx;
- }
- }
- &_textarea {
- border-radius: 10px;
- margin-top: 20rpx;
- height: 180rpx;
- background: #f5f5f5;
- padding: 20rpx;
- textarea {
- font-size: 28rpx;
- }
- }
- }
- &_keyword {
- padding-top: 32rpx;
- display: flex;
- align-items: center;
- justify-content: space-between;
- font-size: 30rpx;
- &_value {
- flex: 1;
- margin-left: 30rpx;
- input {
- width: 100%;
- text-align: right;
- }
- }
- }
- }
- .placeholderClass {
- color: #bbbbbb;
- font-size: 28rpx;
- }
- </style>
|