| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- <style>
- .form-body {
- padding: 20px;
- background-color: #fff;
- margin-bottom: 20px;
- padding-right: 20%;
- min-width: 900px;
- }
- .form-body .el-form-item {
- padding-right: 50%;
- min-width: 850px;
- }
- .form-button {
- margin: 0;
- }
- .form-button .el-form-item__content {
- margin-left: 0 !important;
- }
- .button-item {
- padding: 9px 25px;
- }
- /*批量上传图片*/
- .pic-url-remark {
- font-size: 13px;
- color: #c9c9c9;
- margin-bottom: 12px;
- }
- .add-image-btn {
- width: 100px;
- height: 100px;
- color: #419EFB;
- border: 1px solid #e2e2e2;
- cursor: pointer;
- }
- .del-btn-pro{
- position: absolute;
- top: 28%;
- left: 57px;
- }
- .del-btn{
- position: absolute;
- top: -4%;
- right: -4%;
- }
- </style>
- <?php
- use common\helpers\ComponentHelper;
- ComponentHelper::loadComponentView('com-dialog-select');
- ComponentHelper::loadComponentView('com-image');
- ComponentHelper::loadComponentView('com-pick-link');
- ?>
- <div id="app" v-cloak>
- <el-card v-loading="cardLoading" shadow="never" style="border:0;min-width: 1000px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
- <div slot="header">
- <el-breadcrumb separator="/">
- <el-breadcrumb-item><span style="color: #409EFF;cursor: pointer" @click="$navigate({r:'operating-note/default/index'})">广告图</span>
- </el-breadcrumb-item>
- <el-breadcrumb-item>{{editTitle}}</el-breadcrumb-item>
- </el-breadcrumb>
- </div>
- <div class="form-body">
- <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm" label-width="150px">
- <el-row>
- <el-col :span="24">
- <el-form-item label="排序" prop="sort">
- <el-input v-model="ruleForm.sort" type="number" onkeyup="this.value = this.value.replace(/^\d+\.\d$/,'');"prop="sort" @input="updateView($event)" style="width: 300px;float: left; " placeholder="数字越大,排序越靠前"></el-input>
- </el-form-item>
- <el-form-item label="广告标题" prop="title">
- <el-input placeholder="" style="width: 300px;" maxlength="200" v-model="ruleForm.title"></el-input>
- </el-form-item>
- <!-- 图文-->
- <el-form-item label="广告图片" prop="img">
- <div flex="dir:left">
- <el-input style="width: 300px;display: none;" disabled maxlength="200" v-model="ruleForm.img"></el-input>
- <com-attachment @input="getSelImg" style="margin-bottom: 10px;" :multiple="true" :max="1">
- <el-tooltip class="item" effect="dark" content="建议尺寸:702 * 320" placement="top">
- <div flex="main:center cross:center" class="add-image-btn" v-if="!ruleForm.img">
- + 添加图片
- </div>
- <com-image v-else mode="aspectFill" width='80px' height='80px' :src="ruleForm.img"></com-image>
- </el-tooltip>
- </com-attachment>
- </div>
- </el-form-item>
- <el-form-item label="跳转链接" prop="jump_href">
- <com-pick-link @selected="selectedUrl">
- <el-button>{{ruleForm.jump_href.title || '选择链接'}}</el-button>
- </com-pick-link>
-
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
- <el-button class="button-item" :loading="btnLoading" type="primary" @click="store('ruleForm')" size="small">保存
- </el-button>
- </el-card>
-
- </div>
- <script>
- const app = new Vue({
- el: '#app',
- data() {
- var validatePass = (rule, value, callback) => {
- var reg = /^[\u4e00-\u9fa5\w]+$/;
- if (reg.test(value)) {
- callback();
- }else{
- callback(new Error('不能含有特殊字符'));
- }
- };
- return {
- btnLoading: false,
- cardLoading: false,
- editTitle: '创建素材',
- ruleForm: {
- id:'',
- sort: '',
- title:'',
- img:'',
- jump_href: '',
- pic_url: [],
- },
- rules: {
- title: [{
- required: true,
- message: '请输入广告标题',
- trigger: 'change'
- },{
- max: 12,
- message: '标题不能超过12个字符',
- trigger: 'blur'
- },
- {
- //validator:validatePass,
- trigger: 'blur'
- },
- ],
- img: [
- {required: true, message: '请选择图片', trigger: 'change'},
- ],
- },
- materilCateList:[],
- //弹框配置
- addForm: {
- id: '',
- name: '',
- status: 1,
- },
- addRule: {
- },
- ptypeList: [{
- key: "0",
- value: "成功"
- },
- {
- key: "1",
- value: "失败"
- },
- ],
- addFormTitle: "",
- dialogAddgsVisible: false,
- dataList: [],
- // 对话框显示与否
- dialogVisible: false,
- dataloading: false,
- addGroupVisible: false,
- };
- },
- methods: {
- store(formName) {
- this.$refs[formName].validate((valid) => {
- let self = this;
- if (valid) {
- self.ruleForm.jump_href = self.ruleForm.jump_href?JSON.stringify(self.ruleForm.jump_href):'';
- if(!String(self.ruleForm.sort).length){
- self.ruleForm.sort = 1;
- }
- // self.btnLoading = true;
- request({
- params: {
- r: 'operating-note/ad/edit',
- },
- method: 'post',
- data: self.ruleForm,
- }).then(e => {
- self.btnLoading = false;
- if (e.data.code == 0) {
- navigateTo({
- r: 'operating-note/ad/index',
- })
- } else {
- console.log(e,888);
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- console.log(e.data,e.data.msg,888);
- self.$message.error(e.data.msg);
- self.btnLoading = false;
- });
- } else {
- console.log('error submit!!');
- return false;
- }
- });
- },
- getDetail() {
- let self = this;
- //self.cardLoading = true;
- request({
- params: {
- r: 'operating-note/ad/edit',
- id: getQuery('id')
- },
- method: 'get',
- }).then(e => {
- self.cardLoading = false;
- if (e.data.code == 0) {
- var detailData = e.data.data;
- this.materilCateList = e.data.data.materil_cate_list;
- self.ruleForm.id = getQuery('id')
- if(detailData){
- self.ruleForm = detailData;
- self.ruleForm.jump_href = self.ruleForm.jump_href.length > 0?JSON.parse(self.ruleForm.jump_href):{};
- if (detailData.goods_id) {
- self.ruleForm.goods_list = [];
- detailData.goods['name'] = detailData.goods['goods_name'];
- self.ruleForm.goods_list.push(detailData.goods);
- self.ruleForm.goods_id = detailData.goods_id;
- } else {
- self.ruleForm.goods_list = [];
- self.ruleForm.goods_id = '';
- }
- }
- } else {
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- console.log(e);
- });
- },
- updatePicUrl(e, params) {
- this.ruleForm.pic_url[params.currentIndex].id = e[0].id;
- this.ruleForm.pic_url[params.currentIndex].pic_url = e[0].url;
- this.$forceUpdate();
- },
- thumbUrl(e) {
- if (e.length) {
- this.ruleForm.thumb_url = e[0].url;
- this.$refs.ruleForm.validateField('thumb_url');
- }
- this.$forceUpdate();
- },
- delPic(index) {
- this.ruleForm.pic_url.splice(index, 1)
- },
- // 轮播图
- picUrl(e) {
- if (e.length) {
- let self = this;
- e.forEach(function(item, index) {
- if (self.ruleForm.pic_url.length >= 9) {
- return;
- }
- self.ruleForm.pic_url.push({
- id: item.id,
- pic_url: item.url
- });
- });
- }
- },
- /**
- *更新新数据
- * @param
- */
- saveAddForm(formName) {
- this.$refs[formName].validate((valid) => {
- let self = this;
- if (valid) {
- this.postData({name : self.addForm.name});
- } else {
- console.log('error submit!!');
- return false;
- }
- });
- },
- postData(data){
- let self = this;
- self.btnLoading = true;
- request({
- params: {
- r: 'operating-note/cate/edit',
- },
- method: 'post',
- data:data,
- }).then(e => {
- this.dialogAddgsVisible = false;
- this.btnLoading = false;
- if (e.data.code == 0) {
- this.getDetail();
- } else {
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- console.log(e);
- });
- },
- updateView(e) {
- this.$forceUpdate()
- },
- // 选择链接
- selectedUrl(arr){
- this.ruleForm.jump_href = arr[0];
- },
- getSelImg(img){
- this.ruleForm.img = img[0];
- }
- },
- mounted: function() {
- if (getQuery('id')) {
- this.editTitle = '编辑广告';
- this.getDetail();
- }
- this.getDetail();
- }
- });
- </script>
|