积分商品
This commit is contained in:
		| @@ -1,23 +1,17 @@ | |||||||
| <template> | <template> | ||||||
|   <ai-detail> |   <ai-detail class="appgoods"> | ||||||
|     <template slot="title"> |     <template slot="title"> | ||||||
|       <ai-title :title="pageTitle" isShowBack isShowBottomBorder @onBackClick="cancel(false)"> |       <ai-title title="添加商品" isShowBack isShowBottomBorder @onBackClick="cancel(false)"> | ||||||
|       </ai-title> |       </ai-title> | ||||||
|     </template> |     </template> | ||||||
|     <template slot="content"> |     <template slot="content"> | ||||||
|       <ai-card title="基本信息"> |       <ai-card title="基本信息"> | ||||||
|         <template #content> |         <template #content> | ||||||
|           <el-form :model="form" label-width="120px" ref="form"> |           <el-form :model="form" label-width="120px" ref="form"> | ||||||
|             <el-form-item label="标题" prop="title" :rules="[{required: true, message: '请输入标题', trigger: 'blur'}]"> |             <el-form-item label="商品名称" prop="title" :rules="[{required: true, message: '请输入商品名称', trigger: 'blur'}]"> | ||||||
|               <el-input type="input" v-model="form.title" clearable placeholder="请输入..." maxlength="30" show-word-limit></el-input> |               <el-input type="input" v-model="form.title" clearable placeholder="请输入商品名称" maxlength="30" show-word-limit></el-input> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item prop="areaId" label="发布地区" :rules="[{required: true, message: '请选择地区', trigger: 'change'}]"> |             <el-form-item label="商品图片" prop="thumbUrl"> | ||||||
|               <ai-area-select clearable always-show :instance="instance" v-model="form.areaId" :disabled-level="disabledLevel"></ai-area-select> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="正文" prop="content" :rules="[{required: true, message: '请输入内容', trigger: 'change'}]"> |  | ||||||
|               <ai-editor v-model="form.content" :instance="instance"/> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="缩略图" prop="thumbUrl"> |  | ||||||
|               <ai-uploader |               <ai-uploader | ||||||
|                 :instance="instance" |                 :instance="instance" | ||||||
|                 isShowTip |                 isShowTip | ||||||
| @@ -31,6 +25,46 @@ | |||||||
|                 </template> |                 </template> | ||||||
|               </ai-uploader> |               </ai-uploader> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|  |             <el-form-item label="商品单价" prop="title" :rules="[{required: true, message: '请输入商品单价', trigger: 'blur'}]"> | ||||||
|  |               <el-input-number type="input" v-model="form.title" clearable placeholder="请输入商品单价" :min="0"></el-input-number> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="商品库存" prop="title" :rules="[{required: true, message: '请输入商品库存', trigger: 'blur'}]"> | ||||||
|  |               <el-input-number type="input" v-model="form.title" clearable placeholder="请输入商品库存" :min="0"></el-input-number> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="商品名称" prop="title" :rules="[{required: true, message: '请输入商品名称', trigger: 'blur'}]"> | ||||||
|  |               <el-radio-group v-model="form.title"> | ||||||
|  |                 <el-radio :label="3">不限</el-radio> | ||||||
|  |                 <el-radio :label="6">仅指定网格可见</el-radio> | ||||||
|  |               </el-radio-group> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="商品名称" prop="title" :rules="[{required: true, message: '请输入商品名称', trigger: 'blur'}]"> | ||||||
|  |               <el-radio-group v-model="form.title"> | ||||||
|  |                 <el-radio :label="3">不限</el-radio> | ||||||
|  |                 <el-radio :label="6">仅指定网格可见</el-radio> | ||||||
|  |               </el-radio-group> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="选择网格" prop="wxGroupsName" style="width: 100%;" :rules="[{ required: true, message: '请选择网格', trigger: 'change' }]"> | ||||||
|  |               <ai-picker | ||||||
|  |                 :instance="instance" | ||||||
|  |                 multiple | ||||||
|  |                 dialogTitle="选择网格" | ||||||
|  |                 :ops="{label: 'girdName'}" | ||||||
|  |                 pageTitle="网格" | ||||||
|  |                 action="/app/appgirdinfo/girdList" | ||||||
|  |                 v-model="form.wxGroups" | ||||||
|  |                 @pick="onPick" | ||||||
|  |                 @change="onSelcetChange"> | ||||||
|  |                 <div class="AppAnnounceDetail-select"> | ||||||
|  |                   <el-input size="small" class="AppAnnounceDetail-select__input" placeholder="请选择..." disabled v-model="form.wxGroupsName"></el-input> | ||||||
|  |                   <div class="select-left" v-if="form.wxGroups.length"> | ||||||
|  |                     <span v-for="(item, index) in form.girdList" :key="index" v-if="index < 9">{{ item }}</span> | ||||||
|  |                     <em v-if="form.girdList.length > 9">等{{ form.girdList.length }}个</em> | ||||||
|  |                   </div> | ||||||
|  |                   <i v-if="!form.wxGroups.length">请选择</i> | ||||||
|  |                   <div class="select-right">{{ form.wxGroups.length ? '重新选择' : '选择' }}</div> | ||||||
|  |                 </div> | ||||||
|  |               </ai-picker> | ||||||
|  |             </el-form-item> | ||||||
|           </el-form> |           </el-form> | ||||||
|         </template> |         </template> | ||||||
|       </ai-card> |       </ai-card> | ||||||
| @@ -61,11 +95,14 @@ | |||||||
|           title: '', |           title: '', | ||||||
|           content: '', |           content: '', | ||||||
|           areaId: '', |           areaId: '', | ||||||
|  |           wxGroupsName: '', | ||||||
|           createUnitName: '', |           createUnitName: '', | ||||||
|  |           wxGroups: [], | ||||||
|           createUserName: '', |           createUserName: '', | ||||||
|           status: '', |           status: '', | ||||||
|           thumbUrl: [] |           thumbUrl: [] | ||||||
|         }, |         }, | ||||||
|  |         girdList: [], | ||||||
|         cropOps: { |         cropOps: { | ||||||
|           width: "336px", |           width: "336px", | ||||||
|           height: "210px" |           height: "210px" | ||||||
| @@ -98,6 +135,19 @@ | |||||||
|         }) |         }) | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  |       onPick (e) { | ||||||
|  |         this.form.girdList = e.map(v => v.girdName) | ||||||
|  |       }, | ||||||
|  |  | ||||||
|  |       onSelcetChange (e) { | ||||||
|  |         if (e.length) { | ||||||
|  |           this.form.wxGroupsName = '1' | ||||||
|  |         } else { | ||||||
|  |           this.form.wxGroupsName = '' | ||||||
|  |           this.form.wxGroups = [] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |  | ||||||
|       confirm () { |       confirm () { | ||||||
|         this.$refs.form.validate((valid) => { |         this.$refs.form.validate((valid) => { | ||||||
|           if (valid) { |           if (valid) { | ||||||
| @@ -122,7 +172,7 @@ | |||||||
|  |  | ||||||
|       cancel (isRefresh) { |       cancel (isRefresh) { | ||||||
|         this.$emit('change', { |         this.$emit('change', { | ||||||
|           type: 'list', |           type: 'List', | ||||||
|           isRefresh: !!isRefresh |           isRefresh: !!isRefresh | ||||||
|         }) |         }) | ||||||
|       } |       } | ||||||
| @@ -131,4 +181,87 @@ | |||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
|  |   .appgoods { | ||||||
|  |     .AppAnnounceDetail-select { | ||||||
|  |       display: flex; | ||||||
|  |       align-items: center; | ||||||
|  |       min-height: 32px; | ||||||
|  |       line-height: 1; | ||||||
|  |       background: #F5F5F5; | ||||||
|  |       border-radius: 4px; | ||||||
|  |       border: 1px solid #D0D4DC; | ||||||
|  |       cursor: pointer; | ||||||
|  |       overflow: hidden; | ||||||
|  |       transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); | ||||||
|  |  | ||||||
|  |       &:hover { | ||||||
|  |         border-color: #26f; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       & > i { | ||||||
|  |         flex: 1; | ||||||
|  |         height: 100%; | ||||||
|  |         line-height: 32px; | ||||||
|  |         padding: 0 12px; | ||||||
|  |         color: #888888; | ||||||
|  |         font-size: 14px; | ||||||
|  |         font-style: normal; | ||||||
|  |         border-right: 1px solid #D0D4DC; | ||||||
|  |         background: #fff; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       .AppAnnounceDetail-select__input { | ||||||
|  |         position: absolute; | ||||||
|  |         left: 0; | ||||||
|  |         top: 0; | ||||||
|  |         z-index: -1; | ||||||
|  |         opacity: 0; | ||||||
|  |         height: 100%; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       .select-right { | ||||||
|  |         height: 100%; | ||||||
|  |         padding: 0 12px; | ||||||
|  |         color: #222222; | ||||||
|  |         font-size: 12px; | ||||||
|  |         cursor: pointer; | ||||||
|  |         transition: all ease 0.3s; | ||||||
|  |  | ||||||
|  |         &:hover { | ||||||
|  |           opacity: 0.5; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       .select-left { | ||||||
|  |         display: flex; | ||||||
|  |         flex-wrap: wrap; | ||||||
|  |         flex: 1; | ||||||
|  |         padding: 5px 0 0px 12px; | ||||||
|  |         border-right: 1px solid #D0D4DC; | ||||||
|  |         border-radius: 4px 0 0 4px; | ||||||
|  |         background: #fff; | ||||||
|  |  | ||||||
|  |         em { | ||||||
|  |           height: 22px; | ||||||
|  |           line-height: 22px; | ||||||
|  |           margin: 0 4px 5px 0; | ||||||
|  |           color: #222222; | ||||||
|  |           font-size: 12px; | ||||||
|  |           font-style: normal; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         span { | ||||||
|  |           height: 22px; | ||||||
|  |           line-height: 22px; | ||||||
|  |           margin: 0 4px 5px 0; | ||||||
|  |           padding: 0 8px; | ||||||
|  |           font-size: 12px; | ||||||
|  |           color: #222222; | ||||||
|  |           background: #F3F4F7; | ||||||
|  |           border-radius: 2px; | ||||||
|  |           border: 1px solid #D0D4DC; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
| </style> | </style> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user