addWebsite.vue 72 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620
  1. <template>
  2. <!-- 采集咨询 -->
  3. <div>
  4. <!--表格内容 start------------------------------------------------------------>
  5. <div class="layerBox">
  6. <tableTitle :name="tableDivTitle" />
  7. <el-row class="formContent">
  8. <el-form :model="form" ref="form" :rules="formRules" autocomplete="off" label-width="130px"
  9. label-position="left">
  10. <div class="formDiv">
  11. <el-form-item label="网站名称:" :label-width="formLabelWidth" prop="website_name"
  12. class="custom-align-right">
  13. <el-input v-model="form.website_name" autocomplete="off"
  14. @change="checkWebsiteName(form.website_name,0)" placeholder="请输入网站名称"></el-input>
  15. </el-form-item>
  16. <el-form-item label="网站域名1:" :label-width="formLabelWidth" prop="website_url[0].url"
  17. class="custom-align-right">
  18. <div class="formLabelFloatBox">
  19. <el-input v-model="form.website_url[0].url" autocomplete="off"
  20. @change="checkWebsiteUrl(form.website_url[0].url, 0)"
  21. placeholder="请输入网站域名1"></el-input>
  22. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(1)"
  23. class="formLabeladdIcon"></el-button>
  24. <el-button type="info" icon="el-icon-delete" circle size="mini" @click=""
  25. class="formLabelDelIcon" disabled></el-button>
  26. </div>
  27. </el-form-item>
  28. <el-form-item label="网站域名2:" :label-width="formLabelWidth"
  29. v-if="form.website_url[1].show == true" class="custom-align-right">
  30. <div class="formLabelFloatBox">
  31. <el-input v-model="form.website_url[1].url" autocomplete="off"
  32. @change="checkWebsiteUrl(form.website_url[1].url, 1)"
  33. placeholder="请输入网站域名2"></el-input>
  34. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(2)"
  35. class="formLabeladdIcon"></el-button>
  36. <el-button type="info" icon="el-icon-delete" circle size="mini"
  37. @click="deleteUrlInput(1)" class="formLabelDelIcon"></el-button>
  38. </div>
  39. </el-form-item>
  40. <el-form-item label="网站域名3:" :label-width="formLabelWidth"
  41. v-if="form.website_url[2].show == true" class="custom-align-right">
  42. <div class="formLabelFloatBox">
  43. <el-input v-model="form.website_url[2].url" autocomplete="off"
  44. @change="checkWebsiteUrl(form.website_url[2].url, 2)"
  45. placeholder="请输入网站域名3"></el-input>
  46. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(3)"
  47. class="formLabeladdIcon"></el-button>
  48. <el-button type="info" icon="el-icon-delete" circle size="mini"
  49. @click="deleteUrlInput(2)" class="formLabelDelIcon"></el-button>
  50. </div>
  51. </el-form-item>
  52. <el-form-item label="网站域名4:" :label-width="formLabelWidth"
  53. v-if="form.website_url[3].show == true" class="custom-align-right">
  54. <div class="formLabelFloatBox">
  55. <el-input v-model="form.website_url[3].url" autocomplete="off"
  56. @change="checkWebsiteUrl(form.website_url[3].url, 3)"
  57. placeholder="请输入网站域名4"></el-input>
  58. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(4)"
  59. class="formLabeladdIcon"></el-button>
  60. <el-button type="info" icon="el-icon-delete" circle size="mini"
  61. @click="deleteUrlInput(3)" class="formLabelDelIcon"></el-button>
  62. </div>
  63. </el-form-item>
  64. <el-form-item label="网站域名5:" :label-width="formLabelWidth"
  65. v-if="form.website_url[4].show == true" class="custom-align-right">
  66. <div class="formLabelFloatBox">
  67. <el-input v-model="form.website_url[4].url" autocomplete="off"
  68. @change="checkWebsiteUrl(form.website_url[4].url, 4)"
  69. placeholder="请输入网站域名5"></el-input>
  70. <el-button type="info" icon="el-icon-plus" circle size="mini" @click=""
  71. class="formLabeladdIcon" disabled></el-button>
  72. <el-button type="info" icon="el-icon-delete" circle size="mini"
  73. @click="deleteUrlInput(4)" class="formLabelDelIcon"></el-button>
  74. </div>
  75. </el-form-item>
  76. <el-form-item label="网站属性:" :label-width="formLabelWidth" prop="website_column_arr_id"
  77. class="custom-align-right">
  78. <el-cascader v-model="form.website_column_arr_id" :props="{ checkStrictly: true }"
  79. :options="website_column_arr"></el-cascader>
  80. </el-form-item>
  81. <el-form-item label="网站类型:" :label-width="formLabelWidth" prop="web_type"
  82. class="custom-align-right">
  83. <el-select v-model="form.web_type" clearable placeholder="请选择网站类型">
  84. <el-option label="法治调研类" :value="1"></el-option>
  85. <el-option label="资讯信息类" :value="2"></el-option>
  86. <el-option label="舆情测控类" :value="3"></el-option>
  87. <el-option label="发展促进类" :value="4"></el-option>
  88. </el-select>
  89. </el-form-item>
  90. <el-form-item label="是否核心站:" :label-width="formLabelWidth" prop="is_core"
  91. class="custom-align-right">
  92. <el-radio-group v-model="form.is_core">
  93. <el-radio :label="1">是</el-radio>
  94. <el-radio :label="0">否</el-radio>
  95. </el-radio-group>
  96. </el-form-item>
  97. <el-form-item label="网站logo:" prop="logo" :label-width="formLabelWidth"
  98. :class="['custom-form-item']" class="custom-align-right">
  99. <div class="uploaderBox">
  100. <!--图片上传组件 start ------------------------------------------------------------>
  101. <div class="avatar-upload-container" @mouseenter="hovering = true"
  102. @mouseleave="hovering = false">
  103. <!-- 上传组件 -->
  104. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  105. :before-upload="beforeAvatarUpload">
  106. <!-- 预览图片 -->
  107. <img v-if="logoUrl" :src="logoUrl" class="avatar">
  108. <!-- 上传图标 -->
  109. <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
  110. <div v-else class="chooseImgDiv">
  111. <div>
  112. <img src="@/assets/public/upload/noImage.png">
  113. <div>选择图片</div>
  114. </div>
  115. </div>
  116. <input type="hidden" name="logo" v-model="form.logo">
  117. </el-upload>
  118. <!-- 删除按钮,当鼠标悬浮时显示 -->
  119. <div v-if="hovering && logoUrl" class="delete-button" @click="handleDelete">
  120. <i class="el-icon-delete"></i>
  121. </div>
  122. <span class="photo_tips">请添加网站LOGO,要求图片底色为透明,不大于500K。</span>
  123. </div>
  124. <!--图片上传组件 end ------------------------------------------------------------>
  125. </div>
  126. </el-form-item>
  127. <el-form-item label="网站标题:" :label-width="formLabelWidth" prop="title"
  128. class="custom-align-right">
  129. <template #label>
  130. <span class="askBox">
  131. 网站标题:
  132. <el-tooltip class="item" effect="dark" content="网站标题,如:三农市场网_网站列表_全国信息一体化网络平台_项目大全。"
  133. placement="top">
  134. <i class="el-icon-question"></i>
  135. </el-tooltip>
  136. </span>
  137. </template>
  138. <el-input v-model="form.title" autocomplete="off" placeholder="请输入网站标题"></el-input>
  139. </el-form-item>
  140. <el-form-item label="网站关键词:" :label-width="formLabelWidth" prop="keywords"
  141. class="custom-align-right">
  142. <template #label>
  143. <span class="askBox">
  144. 网站关键词:
  145. <el-tooltip class="item" effect="dark" content="网站关键词,如:三农市场网、全国三农、信息一体化。"
  146. placement="top">
  147. <i class="el-icon-question"></i>
  148. </el-tooltip>
  149. </span>
  150. </template>
  151. <!-- <el-input v-model="form.keywords" autocomplete="off" placeholder="请输入网站关键词"></el-input> -->
  152. <inputTag :initialTags="tags" @tags-updated="updateTags" />
  153. </el-form-item>
  154. <el-form-item label="网站描述:" :label-width="formLabelWidth" prop="description"
  155. class="custom-align-right">
  156. <template #label>
  157. <span class="askBox">
  158. 网站描述:
  159. <el-tooltip class="item" effect="dark" content="网站描述,如:中国三农市场网创建以来,社会效益和会员经济效益贡献。"
  160. placement="top">
  161. <i class="el-icon-question"></i>
  162. </el-tooltip>
  163. </span>
  164. </template>
  165. <el-input type="textarea" v-model="form.description" class="custom-textarea"
  166. placeholder="请输入网站描述"></el-input>
  167. </el-form-item>
  168. <el-form-item label="网站后缀:" :label-width="formLabelWidth" prop="suffix"
  169. class="custom-align-right">
  170. <template #label>
  171. <span class="askBox">
  172. 网站后缀:
  173. <el-tooltip class="item" effect="dark" content="网站后缀,如:全国政务信息一体化应用平台"
  174. placement="top">
  175. <i class="el-icon-question"></i>
  176. </el-tooltip>
  177. </span>
  178. </template>
  179. <el-input type="textarea" v-model="form.suffix" class="custom-textarea" placeholder="请输入网站后缀"></el-input>
  180. </el-form-item>
  181. <el-form-item label="" :label-width="formLabelWidth" prop="ad_key" class="custom-align-right" >
  182. <template #label >
  183. <span class="askBox askBox1">
  184. 网站名称缩写:
  185. <el-tooltip class="item" effect="dark" content="网站名称缩写,如:网站名称缩写,如:三农市场网 snscw。"
  186. placement="top">
  187. <i class="el-icon-question"></i>
  188. </el-tooltip>
  189. </span>
  190. </template>
  191. <el-input v-model="form.ad_key" autocomplete="off" @change="checkWebsiteName(form.ad_key,0)" placeholder="请输入网站名称缩写" :disabled="website_column_arr_id.includes(3)"></el-input>
  192. </el-form-item>
  193. <el-form-item label="网站二维码:" prop="qr_code" :label-width="formLabelWidth"
  194. :class="['custom-form-item']" class="custom-align-right">
  195. <div class="uploaderBox">
  196. <!--图片上传组件 start ------------------------------------------------------------>
  197. <div class="avatar-upload-container" @mouseenter="hovering = true"
  198. @mouseleave="hovering = false">
  199. <!-- 上传组件 -->
  200. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  201. :before-upload="beforeAvatarUpload5">
  202. <!-- 预览图片 -->
  203. <img v-if="logoUrl_5" :src="logoUrl_5" class="avatar">
  204. <!-- 上传图标 -->
  205. <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
  206. <div v-else class="chooseImgDiv">
  207. <div>
  208. <img src="@/assets/public/upload/noImage.png">
  209. <div>选择图片</div>
  210. </div>
  211. </div>
  212. <input type="hidden" name="qr_code" v-model="form.qr_code">
  213. </el-upload>
  214. <!-- 删除按钮,当鼠标悬浮时显示 -->
  215. <div v-if="hovering && logoUrl_5" class="delete-button" @click="handleDelete5">
  216. <i class="el-icon-delete"></i>
  217. </div>
  218. <span class="photo_tips">请上传网站二维码,不大于500K。</span>
  219. </div>
  220. <!--图片上传组件 end ------------------------------------------------------------>
  221. </div>
  222. </el-form-item>
  223. <el-form-item label="网站首页图:" prop="index_img" :label-width="formLabelWidth"
  224. :class="['custom-form-item']" class="custom-align-right">
  225. <div class="uploaderBox">
  226. <!--图片上传组件 start ------------------------------------------------------------>
  227. <div class="avatar-upload-container" @mouseenter="hovering = true"
  228. @mouseleave="hovering = false">
  229. <!-- 上传组件 -->
  230. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  231. :before-upload="beforeAvatarUpload6">
  232. <!-- 预览图片 -->
  233. <img v-if="logoUrl_6" :src="logoUrl_6" class="avatar">
  234. <!-- 上传图标 -->
  235. <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
  236. <div v-else class="chooseImgDiv">
  237. <div>
  238. <img src="@/assets/public/upload/noImage.png">
  239. <div>选择图片</div>
  240. </div>
  241. </div>
  242. <input type="hidden" name="index_img" v-model="form.index_img">
  243. </el-upload>
  244. <!-- 删除按钮,当鼠标悬浮时显示 -->
  245. <div v-if="hovering && logoUrl_6" class="delete-button" @click="handleDelete6">
  246. <i class="el-icon-delete"></i>
  247. </div>
  248. <span class="photo_tips">请上传网站首页图,不大于500K。</span>
  249. </div>
  250. <!--图片上传组件 end ------------------------------------------------------------>
  251. </div>
  252. </el-form-item>
  253. </div>
  254. </el-form>
  255. </el-row>
  256. <tableTitle :name="tableDivTitle1" />
  257. <el-row class="formContent">
  258. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px" class="demo-ruleForm">
  259. <el-form-item label="网站声明:" class="desc">
  260. <el-input type="textarea" v-model="ruleForm.statement" placeholder="请输入网站声明..."
  261. show-word-limit></el-input>
  262. </el-form-item>
  263. <el-form-item label="主办单位:" class="desc">
  264. <el-input type="textarea" v-model="ruleForm.organizer" placeholder="请输入主办单位..."
  265. show-word-limit></el-input>
  266. </el-form-item>
  267. <el-form-item label="cnzz统计:" class="desc">
  268. <el-input type="textarea" v-model="ruleForm.statistics" placeholder="请输入cnzz统计..."
  269. show-word-limit></el-input>
  270. </el-form-item>
  271. <el-form-item label="版权信息:" class="desc">
  272. <el-input type="textarea" v-model="ruleForm.copyright_information" placeholder="请输入版权信息..."
  273. show-word-limit></el-input>
  274. </el-form-item>
  275. <el-form-item label="联系电话:">
  276. <el-input v-model="ruleForm.contact_number" placeholder="请输入联系电话" show-word-limit></el-input>
  277. </el-form-item>
  278. <el-form-item label="电子邮箱:">
  279. <el-input v-model="ruleForm.email" placeholder="请输入电子邮箱" show-word-limit></el-input>
  280. </el-form-item>
  281. <el-form-item label="公司地址:">
  282. <el-input v-model="ruleForm.company_address" placeholder="请输入公司地址" show-word-limit></el-input>
  283. </el-form-item>
  284. <!-- 项目logo -->
  285. <el-form-item label="项目logo:" :label-width="formLabelWidth" :class="['custom-form-item']"
  286. class="custom-align-right">
  287. <div class="uploaderBox">
  288. <!--图片上传组件 start ------------------------------------------------------------>
  289. <div class="avatar-upload-container" @mouseenter="hovering = true"
  290. @mouseleave="hovering = false">
  291. <!-- 上传组件 -->
  292. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  293. :before-upload="beforeAvatarUpload1">
  294. <!-- 预览图片 -->
  295. <img v-if="logoUrl_1" :src="logoUrl_1" class="avatar">
  296. <div v-else class="chooseImgDiv">
  297. <div>
  298. <img src="@/assets/public/upload/noImage.png">
  299. <div>选择图片</div>
  300. </div>
  301. </div>
  302. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  303. </el-upload>
  304. <!-- 删除按钮,当鼠标悬浮时显示 -->
  305. <div v-if="hovering && logoUrl_1" class="delete-button" @click="handleDelete1">
  306. <i class="el-icon-delete"></i>
  307. </div>
  308. <span class="photo_tips">请添加项目LOGO,要求图片底色为透明,推荐尺寸为150*150px,不大于500K。</span>
  309. </div>
  310. <!--图片上传组件 end ------------------------------------------------------------>
  311. </div>
  312. </el-form-item>
  313. <el-form-item label="项目名称:">
  314. <el-input v-model="ruleForm.project_name" placeholder="请输入项目名称" show-word-limit></el-input>
  315. </el-form-item>
  316. <el-form-item label="项目网址:">
  317. <el-input v-model="ruleForm.project_url" placeholder="请输入项目网址" show-word-limit></el-input>
  318. </el-form-item>
  319. <!-- 公司logo -->
  320. <el-form-item label="公司logo:" :label-width="formLabelWidth" :class="['custom-form-item']"
  321. class="custom-align-right">
  322. <div class="uploaderBox">
  323. <!--图片上传组件 start ------------------------------------------------------------>
  324. <div class="avatar-upload-container" @mouseenter="hovering = true"
  325. @mouseleave="hovering = false">
  326. <!-- 上传组件 -->
  327. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  328. :before-upload="beforeAvatarUpload2">
  329. <!-- 预览图片 -->
  330. <img v-if="logoUrl_2" :src="logoUrl_2" class="avatar">
  331. <div v-else class="chooseImgDiv">
  332. <div>
  333. <img src="@/assets/public/upload/noImage.png">
  334. <div>选择图片</div>
  335. </div>
  336. </div>
  337. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  338. </el-upload>
  339. <!-- 删除按钮,当鼠标悬浮时显示 -->
  340. <div v-if="hovering && logoUrl_2" class="delete-button" @click="handleDelete2">
  341. <i class="el-icon-delete"></i>
  342. </div>
  343. <span class="photo_tips">请添加公司LOGO,要求图片底色为透明,推荐尺寸为150*150px,不大于500K。</span>
  344. </div>
  345. <!--图片上传组件 end ------------------------------------------------------------>
  346. </div>
  347. </el-form-item>
  348. <el-form-item label="公司名称:">
  349. <el-input v-model="ruleForm.company_name" placeholder="请输入公司名称"></el-input>
  350. </el-form-item>
  351. <el-form-item label="公司网址:">
  352. <el-input v-model="ruleForm.company_url" placeholder="请输入公司网址"></el-input>
  353. </el-form-item>
  354. <el-form-item label="网站备案号:">
  355. <el-input v-model="ruleForm.icp_number" placeholder="请输入网站备案号"></el-input>
  356. </el-form-item>
  357. <el-form-item label="网安备案号:">
  358. <el-input v-model="ruleForm.record_number" placeholder="请输入网安备案号"></el-input>
  359. </el-form-item>
  360. <el-form-item label="在线客服:" class="desc">
  361. <el-input type="textarea" v-model="ruleForm.online_service" placeholder="请输入在线客服..."
  362. show-word-limit></el-input>
  363. </el-form-item>
  364. <el-form-item label="客服QQ:">
  365. <el-input v-model="ruleForm.customer_service_qq" placeholder="请输入客服QQ"></el-input>
  366. </el-form-item>
  367. <!-- 客服QQ图片 -->
  368. <el-form-item label="客服QQ图片:" :label-width="formLabelWidth" :class="['custom-form-item']"
  369. class="custom-align-right">
  370. <div class="uploaderBox">
  371. <!--图片上传组件 start ------------------------------------------------------------>
  372. <div class="avatar-upload-container" @mouseenter="hovering = true"
  373. @mouseleave="hovering = false">
  374. <!-- 上传组件 -->
  375. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  376. :before-upload="beforeAvatarUpload3">
  377. <!-- 预览图片 -->
  378. <img v-if="logoUrl_3" :src="logoUrl_3" class="avatar">
  379. <div v-else class="chooseImgDiv">
  380. <div>
  381. <img src="@/assets/public/upload/noImage.png">
  382. <div>选择图片</div>
  383. </div>
  384. </div>
  385. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  386. </el-upload>
  387. <!-- 删除按钮,当鼠标悬浮时显示 -->
  388. <div v-if="hovering && logoUrl_3" class="delete-button" @click="handleDelete3">
  389. <i class="el-icon-delete"></i>
  390. </div>
  391. <span class="photo_tips">请添加客服QQ图片,推荐尺寸为150*150px,不大于500K。</span>
  392. </div>
  393. <!--图片上传组件 end ------------------------------------------------------------>
  394. </div>
  395. </el-form-item>
  396. <el-form-item label="通联QQ:">
  397. <el-input v-model="ruleForm.communications" placeholder="请输入通联QQ"></el-input>
  398. </el-form-item>
  399. <!-- 通联QQ图片 -->
  400. <el-form-item label="通联QQ图片:" :label-width="formLabelWidth" :class="['custom-form-item']"
  401. class="custom-align-right">
  402. <div class="uploaderBox">
  403. <!--图片上传组件 start ------------------------------------------------------------>
  404. <div class="avatar-upload-container" @mouseenter="hovering = true"
  405. @mouseleave="hovering = false">
  406. <!-- 上传组件 -->
  407. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  408. :before-upload="beforeAvatarUpload4">
  409. <!-- 预览图片 -->
  410. <img v-if="logoUrl_4" :src="logoUrl_4" class="avatar">
  411. <div v-else class="chooseImgDiv">
  412. <div>
  413. <img src="@/assets/public/upload/noImage.png">
  414. <div>选择图片</div>
  415. </div>
  416. </div>
  417. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  418. </el-upload>
  419. <!-- 删除按钮,当鼠标悬浮时显示 -->
  420. <div v-if="hovering && logoUrl_4" class="delete-button" @click="handleDelete4">
  421. <i class="el-icon-delete"></i>
  422. </div>
  423. <span class="photo_tips">请添加通联QQ图片,推荐尺寸为150*150px,不大于500K。</span>
  424. </div>
  425. <!--图片上传组件 end ------------------------------------------------------------>
  426. </div>
  427. </el-form-item>
  428. <el-form-item label="电话客服:">
  429. <el-input v-model="ruleForm.customer_service" placeholder="请输入电话客服"></el-input>
  430. </el-form-item>
  431. </el-form>
  432. </el-row>
  433. <div slot="footer" class="dialog-footer">
  434. <div class="footerBtnbox">
  435. <el-button @click="closeWindow" type="info">取 消</el-button>
  436. <el-button type="primary" @click="editToServe" v-if="editBtn == true">修改</el-button>
  437. <el-button type="primary" @click="addToServe" v-else>提交</el-button>
  438. </div>
  439. </div>
  440. </div>
  441. <!--表格内容 end------------------------------------------------------------>
  442. </div>
  443. </template>
  444. <script>
  445. //表格标题
  446. import tableTitle from '../website/components/tableTitle.vue';
  447. //引入公用样式
  448. import '@/styles/global.less';
  449. import InputTag from '@/components/InputTag'
  450. export default {
  451. components: {
  452. InputTag,
  453. tableTitle, //表格标题
  454. },
  455. data() {
  456. const validateEmpty = (rule, value, callback) => {
  457. if (value == '') {
  458. callback(new Error('该项不能为空!'))
  459. } else {
  460. callback()
  461. }
  462. }
  463. const validateColumn = (rule, value, callback) => {
  464. if (value.length == 0) {
  465. callback(new Error('该项不能为空!'))
  466. } else {
  467. callback()
  468. }
  469. }
  470. return {
  471. webSite_id: '', // 网站id
  472. tags: [], // 标签数组
  473. tableDivTitle: "网站信息",
  474. tableDivTitle1: "底部信息",
  475. num: 1,
  476. checked: false,
  477. iconSrc: '',
  478. data: '',
  479. activeid: '', //当前被选中的id
  480. formLabelWidth: '', //广告示例图相关
  481. ruleId: '',
  482. source: '',
  483. editBtn: false,//当显示编辑按钮的时候,就不显示提交
  484. website_column_arr_id: [],//需要提交的上级网系 数组
  485. // 网站信息
  486. //3.弹出框中的表单设置 start ------------------------------------------------------------>
  487. //3.1 表单收集的数据
  488. form: {
  489. website_name: '',//需要提交的网站名称
  490. website_url: [//需要绑定的网站地址
  491. { url: "", show: true },
  492. { url: "", show: false },
  493. { url: "", show: false },
  494. { url: "", show: false },
  495. { url: "", show: false }
  496. ],
  497. website_column_arr_id: [],//需要提交的上级网系 数组
  498. web_type:null,//网站类型
  499. is_core:null,//是否核心网站
  500. //city_arr_id:[0],//需要提交的城市id
  501. logo: "",//logo地址 提交文件换取地址
  502. title: "",//需要提交的网站标题
  503. keywords: "",//需要提交的网站标题
  504. description: "",//需要提交的网站描述
  505. suffix: "",//需要提交的网站后缀
  506. ad_key: "",//需要提交的网站名称缩写
  507. qr_code: "",//需要提交的二维码地址
  508. index_img: "",//需要提交的首页图片地址
  509. //template_id:""//选择的网站皮肤
  510. },
  511. //3.2 表单验证规则
  512. formRules: {
  513. //网站名称不能为空
  514. website_name: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  515. //网站地址不能为空
  516. 'website_url[0].url': [
  517. { required: true, message: '至少要填写一个网站域名!', trigger: 'blur' },
  518. // { validator: this.validateWebsiteUrl, trigger: 'blur' }
  519. ],
  520. //网系不能为空 注意,因为是select框,只有提交的时候才会验证
  521. website_column_arr_id: [{ type: 'array', required: true, trigger: 'change', message: '必须选择一个网系!' }],
  522. //网站标题,关键词,描述不能为空
  523. //city_arr_id:[{required:true,trigger:'blur',validator:validateColumn}],
  524. title: [{ required: true, trigger: 'blur', message: "该项不能为空! " }],
  525. keywords: [{ required: true, trigger: 'blur', message: "该项不能为空! " }],
  526. description: [{ required: true, trigger: 'blur', message: "该项不能为空! " }],
  527. logo: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  528. logoUrl: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  529. suffix: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  530. //template_id:[{required:true,trigger:'blur',validator:validateEmpty}],
  531. ad_key: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  532. },
  533. //3.3 通过api获的的数据 弹窗
  534. website_column_arr: [],//api获得的网系列表
  535. //3.4 上传logo图片
  536. logoUrl: '',
  537. logoUrl_1: '',
  538. logoUrl_2: '',
  539. logoUrl_3: '',
  540. logoUrl_4: '',
  541. logoUrl_5: '',
  542. logoUrl_6: '',
  543. hovering: false, // 鼠标悬浮状态 悬浮时显示删除
  544. //3.5 模板列表
  545. TemplateList: [],
  546. getTemplateData: {
  547. template_class_id: 1,//模板类型,暂时为1
  548. page: 1,//当前是第几页
  549. pageSize: 9,//请求多少条
  550. },
  551. TemplateallCount: 0,//总条数
  552. TemplateName: "未选择模板..",//选择的模板名称
  553. TemplateImg: "",//选择的模板图片
  554. //弹出框中的表单设置 end ------------------------------------------------------------>
  555. ruleForm: {
  556. website_id: '', // 网站id
  557. statement: '', // 网站声明
  558. organizer: '', // 主办单位
  559. statistics: '', // cnzz统计
  560. copyright_information: '', // 版权信息
  561. contact_number: '', // 联系电话
  562. email: '', // 电子邮箱
  563. company_address: '', // 公司地址
  564. project_logo: '', // 项目logo
  565. project_name: '', // 项目名称
  566. project_url: '', // 项目网址
  567. company_logo: '', // 公司logo
  568. company_name: '', // 公司名称
  569. company_url: '', // 公司网址
  570. icp_number: '', // 网站备案号
  571. record_number: '', // 网安备案号
  572. online_service: '', // 在线客服
  573. customer_service_qq: '', // 客服QQ
  574. service_qq_img: '', // 客服QQ图片
  575. communications: '', // 通联QQ
  576. communications_img: '', // 通联QQ图片
  577. customer_service: '', // 电话客服
  578. },
  579. rules: {},
  580. //1.4图片上传
  581. imgUrl: "",//在页面上显示缩略图
  582. //获取父级导航池
  583. parentKey: 0,//获取父级导航
  584. parentData: {
  585. checkStrictly: true,
  586. lazy: true,
  587. async lazyLoad(node, resolve) {
  588. const { level, data } = node;
  589. if (data && data.children && data.children.length !== 0) {
  590. return resolve(node)
  591. }
  592. console.log(level)
  593. let parentId = level == 0 ? 0 : data.value
  594. let parames = {
  595. 'pid': parentId
  596. }
  597. self.$store.dispatch('pool/categoryList', parames).then(res => {
  598. if (res.data) {
  599. const nodes = res.data.map(item => ({
  600. value: item.id,
  601. label: item.name,
  602. leaf: level >= 3,
  603. children: []
  604. }))
  605. resolve(nodes)
  606. }
  607. })
  608. }
  609. },
  610. }
  611. },
  612. methods: {
  613. //关键词标签
  614. updateTags(newTags) {
  615. // this.foem.seo_keywords = newTags;
  616. this.tags = newTags;
  617. this.form.keywords = newTags.join(',');
  618. },
  619. //设置图片格式 __网站LOGO__
  620. beforeAvatarUpload(file,type) {
  621. const isJPG = file.type === 'image/jpeg';
  622. const isPNG = file.type === 'image/png';
  623. const isGIF = file.type === 'image/gif';
  624. const isLt2M = file.size / 1024 / 1024 < 2;
  625. console.log(type)
  626. if (!isJPG && !isPNG && !isGIF) {
  627. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  628. return false;
  629. }
  630. if (!isLt2M) {
  631. this.$message.error('上传缩略图大小不能超过 2MB!');
  632. return false;
  633. }
  634. const formData = new FormData();
  635. formData.append('file', file);
  636. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  637. this.logoUrl = res.data.imgUrl;//显示缩略图
  638. this.form.logo = res.data.imgUrl;//提供表单地址
  639. console.log('11111', res.data.imgUrl)
  640. console.log('22222', this.ruleForm.logo);
  641. }).catch(() => {
  642. this.$message({
  643. type: 'info',
  644. message: '网络错误,请重试!'
  645. });
  646. })
  647. // 阻止默认的上传行为
  648. return false;
  649. },
  650. //项目logo
  651. beforeAvatarUpload1(file) {
  652. const isJPG = file.type === 'image/jpeg';
  653. const isPNG = file.type === 'image/png';
  654. const isGIF = file.type === 'image/gif';
  655. const isLt2M = file.size / 1024 / 1024 < 2;
  656. if (!isJPG && !isPNG && !isGIF) {
  657. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  658. return false;
  659. }
  660. if (!isLt2M) {
  661. this.$message.error('上传缩略图大小不能超过 2MB!');
  662. return false;
  663. }
  664. const formData = new FormData();
  665. formData.append('file', file);
  666. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  667. this.logoUrl_1 = res.data.imgUrl;//显示缩略图
  668. this.ruleForm.project_logo = res.data.imgUrl;//提供表单地址
  669. console.log(res.data.imgUrl)
  670. }).catch(() => {
  671. this.$message({
  672. type: 'info',
  673. message: '网络错误,请重试!'
  674. });
  675. })
  676. // 阻止默认的上传行为
  677. return false;
  678. },
  679. //公司logo
  680. beforeAvatarUpload2(file) {
  681. const isJPG = file.type === 'image/jpeg';
  682. const isPNG = file.type === 'image/png';
  683. const isGIF = file.type === 'image/gif';
  684. const isLt2M = file.size / 1024 / 1024 < 2;
  685. if (!isJPG && !isPNG && !isGIF) {
  686. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  687. return false;
  688. }
  689. if (!isLt2M) {
  690. this.$message.error('上传缩略图大小不能超过 2MB!');
  691. return false;
  692. }
  693. const formData = new FormData();
  694. formData.append('file', file);
  695. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  696. this.logoUrl_2 = res.data.imgUrl;//显示缩略图
  697. this.ruleForm.company_logo = res.data.imgUrl;//提供表单地址
  698. console.log(res.data.imgUrl)
  699. }).catch(() => {
  700. this.$message({
  701. type: 'info',
  702. message: '网络错误,请重试!'
  703. });
  704. })
  705. // 阻止默认的上传行为
  706. return false;
  707. },
  708. //客服qq图片
  709. beforeAvatarUpload3(file) {
  710. const isJPG = file.type === 'image/jpeg';
  711. const isPNG = file.type === 'image/png';
  712. const isGIF = file.type === 'image/gif';
  713. const isLt2M = file.size / 1024 / 1024 < 2;
  714. if (!isJPG && !isPNG && !isGIF) {
  715. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  716. return false;
  717. }
  718. if (!isLt2M) {
  719. this.$message.error('上传缩略图大小不能超过 2MB!');
  720. return false;
  721. }
  722. const formData = new FormData();
  723. formData.append('file', file);
  724. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  725. this.logoUrl_3 = res.data.imgUrl;//显示缩略图
  726. this.ruleForm.service_qq_img = res.data.imgUrl;//提供表单地址
  727. console.log(res.data.imgUrl)
  728. }).catch(() => {
  729. this.$message({
  730. type: 'info',
  731. message: '网络错误,请重试!'
  732. });
  733. })
  734. // 阻止默认的上传行为
  735. return false;
  736. },
  737. //通联qq图片
  738. beforeAvatarUpload4(file) {
  739. const isJPG = file.type === 'image/jpeg';
  740. const isPNG = file.type === 'image/png';
  741. const isGIF = file.type === 'image/gif';
  742. const isLt2M = file.size / 1024 / 1024 < 2;
  743. if (!isJPG && !isPNG && !isGIF) {
  744. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  745. return false;
  746. }
  747. if (!isLt2M) {
  748. this.$message.error('上传缩略图大小不能超过 2MB!');
  749. return false;
  750. }
  751. const formData = new FormData();
  752. formData.append('file', file);
  753. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  754. this.logoUrl_4 = res.data.imgUrl;//显示缩略图
  755. this.ruleForm.communications_img = res.data.imgUrl;//提供表单地址
  756. console.log(res.data.imgUrl)
  757. }).catch(() => {
  758. this.$message({
  759. type: 'info',
  760. message: '网络错误,请重试!'
  761. });
  762. })
  763. // 阻止默认的上传行为
  764. return false;
  765. },
  766. //二维码图片
  767. beforeAvatarUpload5(file) {
  768. const isJPG = file.type === 'image/jpeg';
  769. const isPNG = file.type === 'image/png';
  770. const isGIF = file.type === 'image/gif';
  771. const isLt2M = file.size / 1024 / 1024 < 2;
  772. if (!isJPG && !isPNG && !isGIF) {
  773. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  774. return false;
  775. }
  776. if (!isLt2M) {
  777. this.$message.error('上传缩略图大小不能超过 2MB!');
  778. return false;
  779. }
  780. const formData = new FormData();
  781. formData.append('file', file);
  782. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  783. this.logoUrl_5 = res.data.imgUrl;//显示缩略图
  784. this.form.qr_code = res.data.imgUrl;//提供表单地址
  785. console.log('888888888888888----------------',res.data.imgUrl)
  786. }).catch(() => {
  787. this.$message({
  788. type: 'info',
  789. message: '网络错误,请重试!'
  790. });
  791. })
  792. // 阻止默认的上传行为
  793. return false;
  794. },
  795. //网站首页图片
  796. beforeAvatarUpload6(file) {
  797. const isJPG = file.type === 'image/jpeg';
  798. const isPNG = file.type === 'image/png';
  799. const isGIF = file.type === 'image/gif';
  800. const isLt2M = file.size / 1024 / 1024 < 2;
  801. if (!isJPG && !isPNG && !isGIF) {
  802. this.$message.error('上传缩略图只能是 JPG 或 PNG 或 GIF 格式!');
  803. return false;
  804. }
  805. if (!isLt2M) {
  806. this.$message.error('上传缩略图大小不能超过 2MB!');
  807. return false;
  808. }
  809. const formData = new FormData();
  810. formData.append('file', file);
  811. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  812. this.logoUrl_6 = res.data.imgUrl;//显示缩略图
  813. this.form.index_img = res.data.imgUrl;//提供表单地址
  814. console.log(res.data.imgUrl)
  815. }).catch(() => {
  816. this.$message({
  817. type: 'info',
  818. message: '网络错误,请重试!'
  819. });
  820. })
  821. // 阻止默认的上传行为
  822. return false;
  823. },
  824. handleDelete() {
  825. // 删除图片
  826. this.form.logo = '';
  827. this.logoUrl = ''; // 清空图片 URL
  828. },
  829. handleDelete1() {
  830. // 删除图片
  831. this.ruleForm.project_logo = '';
  832. this.logoUrl_1 = ''; // 清空图片 URL
  833. },
  834. handleDelete2() {
  835. // 删除图片
  836. this.ruleForm.company_logo = '';
  837. this.logoUrl_2 = ''; // 清空图片 URL
  838. },
  839. handleDelete3() {
  840. // 删除图片
  841. this.ruleForm.service_qq_img = '';
  842. this.logoUrl_3 = ''; // 清空图片 URL
  843. },
  844. handleDelete4() {
  845. // 删除图片
  846. this.ruleForm.communications_img = '';
  847. this.logoUrl_4 = ''; // 清空图片 URL
  848. },
  849. handleDelete5() {
  850. // 删除图片
  851. this.form.qr_code = '';
  852. this.logoUrl_5 = ''; // 清空图片 URL
  853. },
  854. handleDelete6() {
  855. // 删除图片
  856. this.form.index_img = '';
  857. this.logoUrl_6 = ''; // 清空图片 URL
  858. },
  859. //取消添加或编辑
  860. goCancel() {
  861. this.$message({
  862. message: "已取消修改",
  863. type: "error"
  864. })
  865. this.$router.push(`/webCrawlerList?id=${this.ruleId}&source=${this.source}`)
  866. },
  867. //浏览量
  868. handleChange(value) {
  869. console.log(value);
  870. this.ruleForm.count = value
  871. },
  872. //2.2 关闭弹出框
  873. closeWindow() {
  874. this.$router.push({
  875. path: '/webSite',
  876. });
  877. this.clearToServe();
  878. },
  879. //2.3 重置窗口内容
  880. clearToServe() {
  881. //还原表单
  882. this.form.website_name = "";
  883. this.form.website_column_arr_id = "";
  884. this.form.web_type = null;
  885. this.form.is_core = null;
  886. this.form.website_url = [
  887. { url: "", show: true },
  888. { url: "", show: false },
  889. { url: "", show: false },
  890. { url: "", show: false },
  891. { url: "", show: false }
  892. ];
  893. //this.form.city_arr_id = [0];
  894. this.form.logo = "";
  895. this.form.title = "";
  896. this.form.keywords = "";
  897. this.form.description = "";
  898. this.form.template_id = "";
  899. //还原logo缩略图
  900. this.logoUrl = "";
  901. //还原模板
  902. this.TemplateList = [];
  903. this.getTemplateData.page = 1;
  904. this.TemplateImg = "";
  905. this.TemplateallCount = 0;
  906. this.form.suffix = "";
  907. this.form.keywords = "";
  908. this.tags = [];
  909. this.form.ad_key = ""; // 网站名称缩写
  910. this.form.index_img = ""; // 网站二维码
  911. this.form.qr_code = ""; // 网站首页图片
  912. this.logoUrl_5 = "";
  913. this.logoUrl_6 = "";
  914. },
  915. //3.1 获得所有网系
  916. getwebsiteColumn() {
  917. let that = this;
  918. this.$store.dispatch('pool/getwebsiteColumn').then(res => {
  919. let arrData = this.transformData(res.data)
  920. this.website_column_arr = arrData;
  921. })
  922. },
  923. transformData(arrData) {
  924. let that = this;
  925. return arrData.map(item => {
  926. // 创建一个新的对象,替换键名
  927. let newItem = {
  928. label: item.column_name,
  929. value: item.id,
  930. // 保留其他不需要改动的字段
  931. pid: item.pid,
  932. sort: item.sort,
  933. remark: item.remark,
  934. column_arr_id: item.column_arr_id,
  935. updated_at: item.updated_at,
  936. created_at: item.created_at,
  937. };
  938. // 如果有 children,则递归处理 children 数组
  939. if (item.children && item.children.length > 0) {
  940. newItem.children = that.transformData(item.children);
  941. }
  942. return newItem;
  943. });
  944. },
  945. //3.3 添加一条网站地址
  946. addUrlInput(key) {
  947. this.form.website_url[key].show = true;
  948. },
  949. //3.4 删除一条网站地址
  950. deleteUrlInput(key) {
  951. //如果是添加模式无需验证
  952. if (this.activeid) {
  953. if(this.form.website_url[key].url == ""){
  954. this.form.website_url[key].show = false;
  955. this.form.website_url[key].url = "";
  956. return;
  957. }else{
  958. this.$confirm('此操作将删除网站绑定的域名, 是否继续?', '提示', {
  959. confirmButtonText: '确定',
  960. cancelButtonText: '取消',
  961. type: 'warning'
  962. }).then(() => {
  963. let data = {
  964. website_id: this.activeid,
  965. website_url: this.form.website_url[key].url
  966. }
  967. this.$store.dispatch('pool/delWebsiteUrl', data).then(res => {
  968. if(res.code == 200){
  969. this.$message({
  970. type: 'success',
  971. message: '网站域名删除成功!'
  972. });
  973. this.form.website_url[key].show = false;
  974. this.form.website_url[key].url = "";
  975. }else{
  976. this.$message({
  977. type: 'error',
  978. message: res.message
  979. });
  980. }
  981. })
  982. }).catch(() => {
  983. this.$message({
  984. type: 'warning',
  985. message: '已取消删除'
  986. });
  987. });
  988. }
  989. }else{
  990. this.form.website_url[key].show = false;
  991. this.form.website_url[key].url = "";
  992. }
  993. },
  994. //3.7 提交表单
  995. addToServe() {
  996. console.log('2222', this.form)
  997. //先进行验证
  998. this.$refs.form.validate(valid => {
  999. if (valid) {
  1000. //提交之前把域名列表转换成数组
  1001. let webSiteArray = [];
  1002. for (let item of this.form.website_url) {
  1003. if (item.url != "") {
  1004. webSiteArray.push(item.url)
  1005. }
  1006. }
  1007. //循环完毕 重置提交的url
  1008. this.form.website_url = webSiteArray;
  1009. //console.log(webSiteArray)
  1010. console.log('3333',this.form)
  1011. //提交表单
  1012. this.$store.dispatch('pool/addWebsite', this.form).then(res => {
  1013. // console.log("55555555555555555",res.code == 200)
  1014. if (res.code == 200) {
  1015. // console.log(333);
  1016. //汇报结果
  1017. // this.$message({
  1018. // type: 'success',
  1019. // message: '已成功添加网站!'
  1020. // });
  1021. this.ruleForm.website_id = res.data.id;
  1022. this.getfootInfo()
  1023. //重新获取表单
  1024. // this.getData();
  1025. //清空并退出
  1026. this.closeWindow();
  1027. } else {
  1028. this.$message({
  1029. type: 'error',
  1030. message: '添加失败!请检查网络!'
  1031. });
  1032. //清空并退出
  1033. this.closeWindow();
  1034. }
  1035. }).catch(() => {
  1036. this.$message({
  1037. type: 'warning',
  1038. message: '网络错误,请重试!'
  1039. });
  1040. })
  1041. }
  1042. })
  1043. },
  1044. //3.8 检测网站名称是否存在
  1045. checkWebsiteName(name,num) {
  1046. let data = {}
  1047. if(num == 0){
  1048. data = {
  1049. website_name: name
  1050. }
  1051. }else{
  1052. data = {
  1053. ad_key: name,
  1054. }
  1055. }
  1056. // console.log("gjsrolighjorsihg",data)
  1057. if (this.editId != "") {
  1058. data.id = this.editId;
  1059. }
  1060. this.$store.dispatch('pool/checkWebsiteName', data).then(res => {
  1061. if (res.code == 200) {
  1062. this.form.website_name = "";
  1063. this.$message({
  1064. type: 'warning',
  1065. message: '网站名称已存在!请重新输入!'
  1066. });
  1067. }
  1068. })
  1069. },
  1070. //3.9 检测网站url是否存在
  1071. checkWebsiteUrl(url, num) {
  1072. let data = {
  1073. website_url: url
  1074. }
  1075. if (this.editId != "") {
  1076. data.id = this.editId;
  1077. }
  1078. this.$store.dispatch('pool/checkWebsiteUrl', data).then(res => {
  1079. if (res.code == 200) {
  1080. if (num == 0) { this.form.website_url[0].url = "" }
  1081. if (num == 1) { this.form.website_url[1].url = "" }
  1082. if (num == 2) { this.form.website_url[2].url = "" }
  1083. if (num == 3) { this.form.website_url[3].url = "" }
  1084. if (num == 4) { this.form.website_url[4].url = "" }
  1085. this.$message({
  1086. type: 'warning',
  1087. message: '当前网站已经被占用,请重新输入!'
  1088. });
  1089. }
  1090. })
  1091. },
  1092. //添加底部信息接口
  1093. getfootInfo() {
  1094. this.$store.dispatch('pool/addWebFootInfo', this.ruleForm).then(res => {
  1095. console.log('00001', res);
  1096. if (res.code == 200) {
  1097. this.$message({
  1098. message: '添加成功',
  1099. type: 'success'
  1100. })
  1101. this.$router.push({
  1102. path: '/webSite'
  1103. })
  1104. } else {
  1105. this.$message({
  1106. message: '添加失败',
  1107. type: 'error'
  1108. })
  1109. }
  1110. })
  1111. },
  1112. //5.2修改表单
  1113. editToServe() {
  1114. //执行验证
  1115. this.$refs.form.validate(valid => {
  1116. if (valid) {
  1117. //提交之前把域名列表转换成数组
  1118. let webSiteArray = [];
  1119. for (let item of this.form.website_url) {
  1120. if (item.url != "") {
  1121. webSiteArray.push(item.url)
  1122. }
  1123. }
  1124. //循环完毕 重置提交的url
  1125. this.form.website_url = webSiteArray;
  1126. this.form.id = this.activeid;
  1127. //提交表单
  1128. this.$store.dispatch('pool/updateWebsite', this.form).then(res => {
  1129. console.log(res.code)
  1130. if (res.code == 200) {
  1131. //修改底部信息
  1132. this.editFootInfo()
  1133. //清空并退出
  1134. // this.closeWindow();
  1135. //重新请求列表
  1136. // this.getData();
  1137. } else {
  1138. this.$message.error(res.message)
  1139. //清空并退出
  1140. // this.closeWindow();
  1141. }
  1142. })
  1143. // .catch(() => {
  1144. // this.$message({
  1145. // type: 'warning',
  1146. // message: '网络错误,请重试!'
  1147. // });
  1148. // })
  1149. }
  1150. })
  1151. },
  1152. //5.3 修改底部信息
  1153. editFootInfo() {
  1154. this.ruleForm.website_id = this.activeid;
  1155. this.$store.dispatch('pool/upWebFootInfo', this.ruleForm).then(res => {
  1156. if (res.code == 200) {
  1157. this.$message({
  1158. message: '修改成功',
  1159. type: 'success'
  1160. })
  1161. this.$router.push({ path: '/webSite' })
  1162. } else {
  1163. this.$message({
  1164. message: '修改失败',
  1165. type: 'error'
  1166. })
  1167. this.getfootInfo()
  1168. }
  1169. })
  1170. },
  1171. // 1.5 获取底部信息详情接口
  1172. // this.ruleForm.website_id = this.activeid;
  1173. getfootInfo() {
  1174. this.ruleForm.website_id = this.activeid;
  1175. this.$store.dispatch('pool/getWebFootInfo', { website_id: this.activeid }).then(res => {
  1176. console.log('1111', res);
  1177. if (res.code == 200) {
  1178. this.ruleForm.statement = res.data.statement;
  1179. this.ruleForm.organizer = res.data.organizer;
  1180. this.ruleForm.statistics = res.data.statistics;
  1181. this.ruleForm.copyright_information = res.data.copyright_information;
  1182. this.ruleForm.contact_number = res.data.contact_number;
  1183. this.ruleForm.email = res.data.email;
  1184. this.ruleForm.company_address = res.data.company_address;
  1185. this.ruleForm.project_logo = res.data.project_logo;
  1186. this.logoUrl_1 = res.data.project_logo;
  1187. this.ruleForm.project_name = res.data.project_name;
  1188. this.ruleForm.project_url = res.data.project_url;
  1189. this.ruleForm.company_logo = res.data.company_logo;
  1190. this.logoUrl_2 = res.data.company_logo;
  1191. this.ruleForm.company_name = res.data.company_name;
  1192. this.ruleForm.company_url = res.data.company_url;
  1193. this.ruleForm.icp_number = res.data.icp_number;
  1194. this.ruleForm.record_number = res.data.record_number;
  1195. this.ruleForm.customer_service = res.data.customer_service;
  1196. this.ruleForm.customer_service_qq = res.data.customer_service_qq;
  1197. this.ruleForm.service_qq_img = res.data.service_qq_img;
  1198. this.logoUrl_3 = res.data.service_qq_img;
  1199. this.ruleForm.communications = res.data.communications;
  1200. this.ruleForm.communications_img = res.data.communications_img;
  1201. this.logoUrl_4 = res.data.communications_img;
  1202. this.ruleForm.online_service = res.data.online_service;
  1203. }
  1204. })
  1205. }
  1206. },
  1207. mounted() {
  1208. // 1.1 获取所有网系
  1209. this.getwebsiteColumn()
  1210. // 1.2 获取到的被编辑的id
  1211. this.activeid = this.$route.query.id
  1212. // 1.2.1 回显网系
  1213. if(this.$route.query.website_column_arr_id){
  1214. this.website_column_arr_id = this.$route.query.website_column_arr_id;
  1215. }
  1216. // 1.3 通过id判断当前是添加还是编辑
  1217. if (this.activeid) {
  1218. this.editBtn = true;//显示编辑按钮
  1219. // 1.4 获取网站详情
  1220. this.$store.dispatch('pool/getWebsiteInfo', { id: this.activeid }).then(res => {
  1221. //清除错误状态
  1222. // this.$refs.form.clearValidate();
  1223. console.log(res)
  1224. //回显网站名称
  1225. this.form.website_name = res.data.website_name;
  1226. //回显星系
  1227. this.form.website_column_arr_id = res.data.website_column_arr_id;
  1228. //回显logo
  1229. this.form.logo = res.data.logo;
  1230. this.logoUrl = res.data.logo;
  1231. // 回显网站二维码
  1232. this.form.qr_code = res.data.qr_code;
  1233. this.logoUrl_5 = res.data.qr_code;
  1234. // 回显网站首页图片
  1235. this.form.index_img = res.data.index_img;
  1236. this.logoUrl_6 = res.data.index_img;
  1237. //回显url
  1238. let that = this;
  1239. if (res.data.website_url == null) {
  1240. //为null什么都不执行
  1241. } else {
  1242. for (let index in res.data.website_url) {
  1243. this.form.website_url[index].url = res.data.website_url[index];
  1244. this.form.website_url[index].show = true;
  1245. }
  1246. }
  1247. //回显id
  1248. //存放城市id
  1249. //this.form.city_arr_id = res.data.city_arr_id;
  1250. //当cascaderKey的值改变的时候 级联选择器会重置里面的内容
  1251. //this.cascaderKey += 1;
  1252. //回显网站标题,描述,关键词
  1253. console.log(res.data.title, res.data.keywords, res.data.description)
  1254. this.form.title = res.data.title;
  1255. this.form.keywords = res.data.keywords;
  1256. this.form.web_type = res.data.web_type;
  1257. this.form.is_core = res.data.is_core;
  1258. this.tags = res.data.keywords ? res.data.keywords.split(',') : [];
  1259. this.form.description = res.data.description;
  1260. this.form.suffix = res.data.suffix;
  1261. this.form.ad_key = res.data.ad_key; // 网站名称缩写
  1262. // this.form.ad_key = res.data.ad_key; // 网站名称缩写
  1263. // this.form.ad_key = res.data.ad_key; // 网站名称缩写
  1264. //回显模板信息
  1265. // this.form.template_id = res.data.template_id;
  1266. // this.TemplateName = res.data.template_name;
  1267. // this.TemplateImg = JSON.parse(res.data.template_img)[0];
  1268. })
  1269. this.getfootInfo()
  1270. }
  1271. }
  1272. }
  1273. </script>
  1274. <style scoped lang="less">
  1275. p {
  1276. padding: 0;
  1277. margin: 0;
  1278. }
  1279. .layerBox {
  1280. padding: 30px 20px;
  1281. position: relative;
  1282. .listBtnBox {
  1283. justify-content: left;
  1284. }
  1285. // 表单内容
  1286. .formContent {
  1287. background-color: #f5f7fb;
  1288. padding: 30px 25px;
  1289. position: relative;
  1290. margin-bottom: 20px;
  1291. // 顶部引用外链
  1292. .links {
  1293. position: absolute;
  1294. top: 37px;
  1295. right: 97px;
  1296. }
  1297. //底部免责声明提示文字
  1298. .tips {
  1299. margin: 0 auto;
  1300. font-size: 13px;
  1301. color: #666666;
  1302. }
  1303. // 图片上传提示文字
  1304. .imgTips {
  1305. color: #8B8D97;
  1306. font-size: 14px;
  1307. }
  1308. // 资讯关键词 和 资讯描述 的 文字提示
  1309. .keywords,
  1310. .desc {
  1311. position: relative;
  1312. i {
  1313. position: absolute;
  1314. top: 0;
  1315. left: -15px;
  1316. }
  1317. }
  1318. // 文字提示用到的图标的颜色
  1319. .el-icon-warning {
  1320. color: #a9a9a9;
  1321. }
  1322. // input框右下角数字颜色
  1323. ::v-deep .el-input__count {
  1324. color: #999;
  1325. }
  1326. // 多行文本框的高度
  1327. ::v-deep .el-textarea__inner {
  1328. height: 100px;
  1329. }
  1330. // 下拉框
  1331. ::v-deep .el-select {
  1332. width: 100%;
  1333. display: inline-block;
  1334. position: relative;
  1335. }
  1336. }
  1337. //按钮
  1338. .btn {
  1339. width: 440px;
  1340. margin: 50px auto 20px;
  1341. button {
  1342. width: 180px;
  1343. height: 58px;
  1344. border-radius: 12px;
  1345. border: none;
  1346. font-size: 20px;
  1347. }
  1348. .cancel {
  1349. color: #333;
  1350. background-color: #f5f7fb;
  1351. border: 2px solid #e3e8fa;
  1352. margin-right: 80px;
  1353. }
  1354. .sure {
  1355. background-color: #5570f1;
  1356. color: #fff;
  1357. }
  1358. }
  1359. //缩略图
  1360. .uploaderBox {
  1361. .avatar {
  1362. width: 140px;
  1363. height: auto;
  1364. }
  1365. .chooseImgDiv {
  1366. background-color: #fff;
  1367. img {
  1368. display: inline-block;
  1369. }
  1370. }
  1371. }
  1372. }
  1373. /*表单特殊样式 start------------------------------------------------------------>*/
  1374. //1.1 模板表单
  1375. .webSite {
  1376. background: #f0f2f5;
  1377. width: 200px;
  1378. height: 300px;
  1379. line-height: 300px;
  1380. text-align: center;
  1381. margin: 0 auto;
  1382. }
  1383. .webSiteTemplate {
  1384. display: flex;
  1385. .webSiteTitle {
  1386. width: 120px;
  1387. line-height: 140px;
  1388. text-align: right;
  1389. padding-right: 12px;
  1390. font-weight: bold;
  1391. }
  1392. }
  1393. .webSiteBtn {
  1394. padding: 50px 0 0 0;
  1395. text-align: center;
  1396. }
  1397. .formLabelFloatBox {
  1398. position: relative;
  1399. .formLabeladdIcon {
  1400. position: absolute;
  1401. right: 45px;
  1402. top: 5px;
  1403. width: 38px;
  1404. height: 24px;
  1405. }
  1406. .formLabelDelIcon {
  1407. position: absolute;
  1408. right: 5px;
  1409. top: 5px;
  1410. width: 38px;
  1411. height: 24px;
  1412. }
  1413. }
  1414. .templateBox {
  1415. display: flex;
  1416. .templateListClass {
  1417. margin-right: 20px;
  1418. .templateListClassItem {
  1419. width: 120px;
  1420. height: 38px;
  1421. text-align: center;
  1422. line-height: 38px;
  1423. border: 1px solid #E3E8FA;
  1424. background: #F5F7FB;
  1425. margin-bottom: 10px;
  1426. border-radius: 8px;
  1427. cursor: pointer;
  1428. }
  1429. }
  1430. .templateListBox {
  1431. box-sizing: border-box;
  1432. width: 100%;
  1433. display: flex;
  1434. flex-wrap: wrap;
  1435. .templateList {
  1436. margin-right: 10px;
  1437. text-align: center;
  1438. font-size: 12px;
  1439. margin-bottom: 10px;
  1440. border: 1px solid #fff;
  1441. padding: 5px;
  1442. .templateImg {
  1443. width: 129px;
  1444. height: 157px;
  1445. border-radius: 8px;
  1446. cursor: pointer;
  1447. }
  1448. }
  1449. }
  1450. }
  1451. //1.1 模板分页
  1452. .pageNumBox {
  1453. text-align: center;
  1454. padding-top: 20px;
  1455. }
  1456. .webSiteTemplateName {
  1457. margin-left: 10px;
  1458. line-height: 36px;
  1459. }
  1460. //1.2 模板缩略图
  1461. .webSiteTemplateImg {
  1462. width: 140px;
  1463. height: 140px;
  1464. cursor: pointer;
  1465. display: flex;
  1466. align-items: center;
  1467. justify-content: center;
  1468. border-radius: 12px;
  1469. border: 1px solid #E1E2E9;
  1470. .selectWebSiteTemplateImg {
  1471. width: 140px;
  1472. height: 140px;
  1473. border-radius: 12px;
  1474. display: block;
  1475. cursor: pointer;
  1476. }
  1477. .webSiteTemplateText {
  1478. color: #5570F1;
  1479. height: 36px;
  1480. line-height: 36px;
  1481. text-align: center;
  1482. }
  1483. img {
  1484. display: block;
  1485. }
  1486. }
  1487. /*表单样式 end------------------------------------------------------------>*/
  1488. //执行v-deep穿透scope选择器 start------------------------------------------------------------>*/
  1489. ::v-deep .custom-form-item>.el-form-item__label {
  1490. line-height: 140px !important;
  1491. }
  1492. ::v-deep .custom-textarea .el-textarea__inner {
  1493. resize: none;
  1494. /* 禁止用户拖拽调整大小 */
  1495. }
  1496. ::v-deep .custom-align-right .el-form-item__label {
  1497. text-align: right;
  1498. /* 设置标签文字右对齐 */
  1499. }
  1500. ::v-deep .custom-align-right.key {
  1501. text-align: right;
  1502. background-color: red;
  1503. /* 设置标签文字右对齐 */
  1504. }
  1505. //该项不能为空几个字的位置
  1506. ::v-deep .el-form-item__error {
  1507. color: #ff4949;
  1508. font-size: 12px;
  1509. line-height: 1;
  1510. padding-top: 4px;
  1511. position: relative;
  1512. // top: 22%;
  1513. // left: 93%;
  1514. }
  1515. //输入框距离底部的距离
  1516. ::v-deep .el-form-item {
  1517. margin-bottom: 5px;
  1518. }
  1519. //图片提示文字样式
  1520. .photo_tips {
  1521. // font-size: 12px;
  1522. color: #999;
  1523. }
  1524. //执行v-deep穿透scope选择器 end------------------------------------------------------------>*/</style>