Преглед изворни кода

自助建站一周保存

自助建站一周保存
dangyunlong пре 5 дана
родитељ
комит
c543fdca1f
4 измењених фајлова са 82 додато и 325 уклоњено
  1. 19 0
      src/api/template.js
  2. 1 1
      src/layout/components/Navbar.vue
  3. 21 1
      src/store/modules/template.js
  4. 41 323
      src/views/template/templateBase.vue

+ 19 - 0
src/api/template.js

@@ -137,4 +137,23 @@ export function addTwinAdPlace(data) {
     })
 }
 
+//1.16 获得模板基本信息
+export function getWebPageType(params) {
+    return request({
+        url: '/public/getWebPageType',
+        method: 'get',
+        params
+    })
+}
+
+//1.17 选择页面类型 - 是否添加搜索页
+export function addWebPageType(data) {
+    return request({
+        url: '/public/addWebPageType',
+        method: 'post',
+        data
+    })
+}
+
+
 //自助建站 end ------------------------------------->

+ 1 - 1
src/layout/components/Navbar.vue

@@ -545,7 +545,7 @@ export default {
     //2.1 获取通知消息列表
     getMsg() {
       this.$store.dispatch('news/getMSG').then(response => {
-        console.log('response1111111111', response);
+        //console.log('response1111111111', response);
         this.msg = response.data;
         // console.log(this.msg);
       }).catch(error => {

+ 21 - 1
src/store/modules/template.js

@@ -3,7 +3,7 @@ import { getSiteInfo, getSiteCategory, getFooterCategoryList} from '@/api/cms'
 //自助建站的接口 用于添加基本信息
 import {
     getWebsiteintel, checkWebsiteBuild, getAdminSiteInfo, upWebsiteTemplateintel, getAllTemplateClass, getWebsiteTemplateList, addWebsiteTemplateclassintel,
-    getWebsiteTemplateclassintel, saveWebsiteTemplate, getWebsiteTemplateInfo, getWebsiteTemplateData, getAdminWebsiteFootAll, addTwinAdPlace
+    getWebsiteTemplateclassintel, saveWebsiteTemplate, getWebsiteTemplateInfo, getWebsiteTemplateData, getAdminWebsiteFootAll, addTwinAdPlace, getWebPageType, addWebPageType
 } from '@/api/template'
 
 import { Message,MessageBox } from 'element-ui'; //注意在这里引入是非常不符合规范的
@@ -1625,6 +1625,26 @@ const actions = {
             })
         })
     },
+    //1.4 获得页面类型
+    getWebPageType({ commit }, data) {
+        return new Promise((resolve, reject) => {
+            getWebPageType(data).then(response => {
+                resolve(response)
+            }).catch(error => {
+                reject(error)
+            })
+        })
+    },
+    //1.5 选择页面类型 - 是否添加搜索页
+    addWebPageType({ commit }, data) {
+        return new Promise((resolve, reject) => {
+            addWebPageType(data).then(response => {
+                resolve(response)
+            }).catch(error => {
+                reject(error)
+            })
+        })
+    },
     //1.显示画板组件数据 end------------------------------------------------------------>
 
     //2.构建网站json start------------------------------------------------------------>

+ 41 - 323
src/views/template/templateBase.vue

@@ -4,7 +4,7 @@
             <tableTitle :name="templateStepTitle" />
             <step :activeNumber="1" />
         </div>
-        <el-form ref="form" :model="form" :rules="loginRules" class="login-form" autocomplete="on" label-position="left" label-width="120px">
+        <el-form ref="form" :model="form" class="login-form" autocomplete="on" label-position="left" label-width="120px">
             <div class="layerBox">
                 <tableTitle :name="templateBaseTitle" />
                 <div class="formDiv">
@@ -29,7 +29,7 @@
                                 </el-tooltip>
                             </div>
                             <el-checkbox-group v-model="form.page_type">
-                                <el-checkbox label="6">底部菜单列表页</el-checkbox>
+                                <el-checkbox label="6" disabled>底部菜单列表页</el-checkbox>
                                 <el-checkbox label="7" disabled>底部菜单详情页</el-checkbox>
                             </el-checkbox-group>
                         </div>
@@ -49,11 +49,7 @@
                                 </el-tooltip>
                             </div>
                             <el-checkbox-group v-model="form.singlePage">
-                                <el-checkbox label="1" disabled>本网概况</el-checkbox>
-                                <el-checkbox label="2" disabled>会员服务</el-checkbox>
-                                <el-checkbox label="3" disabled>免责声明</el-checkbox>
-                                <el-checkbox label="4" disabled>本网招聘</el-checkbox>
-                                <el-checkbox label="5" disabled>联系我们</el-checkbox>
+                                <el-checkbox label="1" disabled v-for="item in pageData.footer_category">{{item.name}}</el-checkbox>
                             </el-checkbox-group>
                         </div>
                     </el-form-item>
@@ -72,168 +68,16 @@
                                 </el-tooltip>
                             </div>
                             <el-checkbox-group v-model="form.singlePage" class="linkBox">
-                                <div class="linkItem">
-                                    <div><el-checkbox label="1" disabled>不良举报中心</el-checkbox></div>
-                                    <img src="http://img.bjzxtw.org.cn/pre/image/png/20250427/1745733680817523.png">
-                                    <div class="linkUrl">https://www.12377.cn/</div>
-                                </div>
-                                <div class="linkItem">
-                                    <div><el-checkbox label="1" disabled>网络110举报服务</el-checkbox></div>
-                                    <img src="http://img.bjzxtw.org.cn/pre/image/png/20250427/1745733722226988.png">
-                                    <div class="linkUrl">http://www.bj.cyberpolice.cn/</div>
-                                </div>
-                                <div class="linkItem">
-                                    <div><el-checkbox label="1" disabled>住房与建设法制调研中心</el-checkbox></div>
-                                    <img src="http://img.bjzxtw.org.cn/pre/image/jpeg/20250427/1745734162658708.jpg">
-                                    <div class="linkUrl">http://zjfzdy.org.cn/</div>
-                                </div>
-                                <div class="linkItem">
-                                    <div><el-checkbox label="1" disabled>乡村振兴调研中心</el-checkbox></div>
-                                    <img src="http://img.bjzxtw.org.cn/pre/image/jpeg/20250427/1745734241791617.jpg">
-                                    <div class="linkUrl">http://xczxdyzx.org.cn/</div>
+                                <div class="linkItem" v-for="(item,index) in pageData.friend_link" :key="index">
+                                    <div><el-checkbox :label="index" :checked="true" disabled>{{item.title}}</el-checkbox></div>
+                                    <img :src="item.logo_url">
+                                    <div class="linkUrl">{{item.url}}</div>
                                 </div>
                             </el-checkbox-group>
                         </div>
                     </el-form-item>
                 </div>
             </div>
-            <!-- <div class="layerBox">
-                <tableTitle :name="templateInfoTitle" />
-                <div class="formDiv">
-                    <el-form-item label="网站声明:" :label-width="formLabelWidth" prop="statement"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.statement" placeholder="请输入.."></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="主办单位:" :label-width="formLabelWidth" prop="organizer"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.organizer" placeholder="请输入.."></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="版权信息:" :label-width="formLabelWidth" prop="copyright_information"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.copyright_information" placeholder="请输入.."></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="联系电话:" :label-width="formLabelWidth" prop="contact_number"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.contact_number" placeholder="请输入.."
-                                maxlength="255"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="公司地址:" :label-width="formLabelWidth" prop="company_address"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.company_address" placeholder="请输入.."
-                                maxlength="255"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="项目LOGO:" class="custom-align-right" prop="project_logo">
-                        <div class="uploaderBox">
-                            <el-upload class="avatar-uploader" action="#" :show-file-list="false"
-                                :before-upload="projectLogoUpload">
-                                <img v-if="project_logo_src" :src="project_logo_src" class="avatar">
-                                <div v-else class="chooseImgDiv">
-                                    <div>
-                                        <img src="@/assets/public/upload/noImage.png">
-                                        <div>选择图片</div>
-                                    </div>
-                                </div>
-                            </el-upload>
-                            <input type="hidden" v-model="form.project_logo">
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="项目名称:" :label-width="formLabelWidth" prop="project_name"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.project_name" placeholder="请输入.."
-                                maxlength="100"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="项目网址:" :label-width="formLabelWidth" prop="project_url"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.project_url" placeholder="请输入.."
-                                maxlength="100"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="公司LOGO:" class="custom-align-right" prop="company_logo">
-                        <div class="uploaderBox">
-                            <el-upload class="avatar-uploader" action="#" :show-file-list="false"
-                                :before-upload="companyLogoUpload">
-                                <img v-if="company_logo_src" :src="company_logo_src" class="avatar">
-                                <div v-else class="chooseImgDiv">
-                                    <div>
-                                        <img src="@/assets/public/upload/noImage.png">
-                                        <div>选择图片</div>
-                                    </div>
-                                </div>
-                            </el-upload>
-                            <input type="hidden" v-model="form.company_logo">
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="公司名称:" :label-width="formLabelWidth" prop="company_name"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.company_name" placeholder="请输入.."
-                                maxlength="100"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="公司网址:" :label-width="formLabelWidth" prop="company_url"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.company_url" placeholder="请输入.."
-                                maxlength="100"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="网站备案号:" :label-width="formLabelWidth" prop="icp_number"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.icp_number" placeholder="请输入.."
-                                maxlength="50"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="网站备链接:" :label-width="formLabelWidth" prop="icp_number_url"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.icp_number_url" placeholder="请输入.."
-                                maxlength="100"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="网安备案号:" :label-width="formLabelWidth" prop="record_number"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.record_number" placeholder="请输入.."
-                                maxlength="50"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="网安备案号链接" :label-width="formLabelWidth" prop="record_number_url"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.record_number_url" placeholder="请输入.."
-                                maxlength="100"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="客服QQ号:" :label-width="formLabelWidth" prop="customer_service_qq"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.customer_service_qq" placeholder="请输入.."
-                                maxlength="50"></el-input>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="通联QQ号:" :label-width="formLabelWidth" prop="communications"
-                        class="custom-align-right">
-                        <div class="formLabelFloatBox">
-                            <el-input type="text" v-model="form.communications" placeholder="请输入.."
-                                maxlength="50"></el-input>
-                        </div>
-                    </el-form-item>
-                </div>
-            </div> -->
         </el-form>
         <div class="bottomBtnBox">
             <el-button type="info" @click="goToWebsite">返回</el-button>
@@ -274,48 +118,10 @@ export default {
             editId: "",
             form: {
                 website_id: "",//网站id
-                page_type: ["1", "2", "3", "4", "7"],//页面类型
+                page_type: ["1", "2", "3", "4", "6", "7"],//页面类型
                 singlePage: ["1", "2", "3", "4", "5"],//单页类型
-                // statement: "",//网站声明
-                // organizer: "",//主办单位
-                // copyright_information: "",//版权信息
-                // contact_number: "",//联系电话
-                // company_address: "",//公司地址
-                // project_logo: "",//项目logo
-                // project_name: "",//项目名称
-                // project_url: "",//项目网址
-                // company_logo: "",//公司logo
-                // company_name: "",//公司名称
-                // company_url: "",//公司网址
-                // icp_number: "",//网站备案号
-                // icp_number_url: "",//网站备案号链接
-                // record_number: "",//网安备案号
-                // record_number_url: "",//网安备案号链接
-                // customer_service_qq: "",//客服qq客服
-                // communications: "",//通联qq客服
             },
-            project_logo_src: "",//项目logo缩略图
-            company_logo_src: "",//公司logo缩略图
-            //配置from表单验证规则
-            loginRules: {
-                statement: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                organizer: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                copyright_information: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                contact_number: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                company_address: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                project_name: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                project_url: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                company_name: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                company_url: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                icp_number: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                record_number: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                icp_number_url: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                record_number_url: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                company_logo: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                project_logo: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                customer_service_qq: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-                communications: [{ required: true, trigger: 'blur', validator: validateEmpty }],
-            }
+            pageData:{}
         };
     },
     methods: {
@@ -346,112 +152,39 @@ export default {
         //1.提交表单 start ------------------------------------------------------------>
         //1.1提交表单
         addData() {
-            this.form.website_id = this.$route.query.website_id;
-            //console.log(this.form);
-            this.$refs.form.validate(valid => {
-                if (valid) {
-                    this.$store.dispatch('template/checkWebsiteBuild', this.form).then(res => {
-                        if (res.code == 200) {
-                            this.$message.success('网站基本信息保存成功!');
-                            //跳转到风格选择页面
-                            this.$router.push({
-                                path: '/templateStyle',
-                                query: {
-                                    website_id: this.$route.query.website_id,
-                                    step: 1
-                                }
-                            });
-                        } else {
-                            this.$message.error(res.message);
+            let data = {}
+            //判断form.page_type中是否含有5
+            if (this.form.page_type.includes("5")) {
+                console.log("含有5")
+                data.website_id = this.$route.query.website_id,
+                data.is_search = 1;
+                
+            }else{
+                console.log("不含有5")
+                data.website_id = this.$route.query.website_id,
+                data.is_search = 0;
+            }
+            this.$store.dispatch('template/addWebPageType',data).then(res => {
+                if (res.code == 200) {
+                    this.$router.push({
+                        path: '/templateStyle',
+                        query: {
+                            id: this.editId
                         }
-                    })
+                    });
+                } else {
+                    this.$message.error(res.message);
                 }
             })
         },
-        //1.2上传项目logo
-        projectLogoUpload(file) {
-            const isJPG = file.type === 'image/jpeg';
-            const isPNG = file.type === 'image/png';
-            const isLt2M = file.size / 1024 / 1024 < 2;
-            if (!isJPG && !isPNG) {
-                this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
-                return false;
-            }
-            if (!isLt2M) {
-                this.$message.error('上传图片大小不能超过 2MB!');
-                return false;
-            }
-            const formData = new FormData();
-            formData.append('file', file);
-            this.$store.dispatch('pool/uploadFile', formData).then(res => {
-                this.project_logo_src = res.data.imgUrl;//显示缩略图
-                this.form.project_logo = res.data.imgUrl;//提供表单地址
-                console.log(res.data.imgUrl)
-            }).catch(() => {
-                this.$message({
-                    type: 'warning',
-                    message: '网络错误,请重试!'
-                });
-            })
-            // 阻止默认的上传行为
-            return false;
-        },
-        //1.3上传公司logo
-        companyLogoUpload(file) {
-            const isJPG = file.type === 'image/jpeg';
-            const isPNG = file.type === 'image/png';
-            const isLt2M = file.size / 1024 / 1024 < 2;
-            if (!isJPG && !isPNG) {
-                this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
-                return false;
-            }
-            if (!isLt2M) {
-                this.$message.error('上传图片大小不能超过 2MB!');
-                return false;
-            }
-            const formData = new FormData();
-            formData.append('file', file);
-            this.$store.dispatch('pool/uploadFile', formData).then(res => {
-                this.company_logo_src = res.data.imgUrl;//显示缩略图
-                this.form.company_logo = res.data.imgUrl;//提供表单地址
-                console.log(res.data.imgUrl)
-            }).catch(() => {
-                this.$message({
-                    type: 'warning',
-                    message: '网络错误,请重试!'
-                });
-            })
-            // 阻止默认的上传行为
-            return false;
-        },
         //提交表单 start ------------------------------------------------------------>
 
         //2.编辑表单 start ------------------------------------------------------------>
         //2.1回显数据
         getWebsiteBase(website_id) {
-            this.$store.dispatch('template/getWebsiteTemplateintel', { website_id: website_id }).then(res => {
+            this.$store.dispatch('template/getWebPageType', { website_id: this.$route.query.website_id }).then(res => {
                 if (res.code == 200) {
-                    this.form.website_id = res.data.website_id;//网站id
-                    this.form.page_type = res.data.page_type;//页面类型
-                    this.form.statement = res.data.statement;//网站声明
-                    this.form.organizer = res.data.organizer;//主办单位
-                    this.form.copyright_information = res.data.copyright_information;//版权信息
-                    this.form.contact_number = res.data.contact_number;//联系电话
-                    this.form.company_address = res.data.company_address;//公司地址
-                    this.form.project_logo = res.data.project_logo;//项目logo
-                    this.project_logo_src = res.data.project_logo;//项目logo缩略图
-                    this.form.project_name = res.data.project_name;//项目名称
-                    this.form.project_url = res.data.project_url;//项目网址
-                    this.form.company_logo = res.data.company_logo;//公司logo
-                    this.company_logo_src = res.data.company_logo;//公司logo缩略图
-                    this.form.company_name = res.data.company_name;//公司名称
-                    this.form.company_url = res.data.company_url;//公司网址
-                    this.form.icp_number = res.data.icp_number;//网站备案号
-                    this.form.icp_number_url = res.data.icp_number_url;//网站备案号链接
-                    this.form.record_number = res.data.record_number;//网安备案号
-                    this.form.record_number_url = res.data.record_number_url;//网安备案号链接
-                    this.form.customer_service_qq = res.data.customer_service_qq;//客服qq客服
-                    this.form.communications = res.data.communications;//通联qq客服
+                    this.pageData = res.data;
                 } else {
                     this.$message.error(res.message);
                 }
@@ -459,24 +192,7 @@ export default {
         },
         //2.2提交编辑的数据
         editData() {
-            this.$refs.form.validate(valid => {
-                if (valid) {
-                    this.$store.dispatch('template/upWebsiteTemplateintel', this.form).then(res => {
-                        if (res.code == 200) {
-                            this.$message.success('网站基本信息编辑成功!');
-                            this.$router.push({
-                                path: '/templateStyle',
-                                query: {
-                                    website_id: this.$route.query.website_id,
-                                    step: this.$route.query.step
-                                }
-                            });
-                        } else {
-                            this.$message.error(res.message);
-                        }
-                    })
-                }
-            })
+           
         },
         //2.编辑表单 end ------------------------------------------------------------>
 
@@ -486,14 +202,16 @@ export default {
         this.$store.commit('template/showStepStatus');
         //2.判断是新建还是回显
         if (this.$route.query.step != undefined) {
-            console.log("编辑模板!")
-            if (this.$route.query.website_id) {
-                this.getWebsiteBase(this.$route.query.website_id);
-            } else {
-                this.$message.error("无法编辑,缺少关键参数!");
-            }
+            // console.log("编辑模板!")
+            // if (this.$route.query.website_id) {
+                
+            // } else {
+            //     this.$message.error("无法编辑,缺少关键参数!");
+            // }
         } else {
             console.log("添加模板基本信息!")
+            //显示页面类型
+            this.getWebsiteBase();
         }
     }
 };