• HTML 引入element ui 并使用axios请求后端


           由于项目开发,需要在前端项目以外新建一个单页面,做数据处理。

    用纯HTML开发,最麻烦的就是处理样式问题以及事件,由于开发单页面没有技术要求,所以直接使用element ui +vue 来开发

    链接:

       element-ui: https://unpkg.com/browse/element-ui@2.7.2/lib/ (版本统一,不然出现样式不生效问题)

           1) element-ui/lib 包,先选择想要的版本,只下载index.js 即可,因为index.js文件是其他所有文件的汇总

           2) element-ui/lib/theme-chalk 组件样式包;下载 index.css文件

            3) element-ui/lib/theme-chalk/fonts 字体包;(element-icons.woff、element-icons.ttf)两个文件,都要下载

         vue:  https://cdn.jsdelivr.net/npm/vue@2.7.2/dist/   选择版本,下载 vue.js

      axios:   https://unpkg.com/axios@0.27.2/dist/axios.min.js  (打开右键另存为即可或者直接右键链接另存为)

      axios(github):https://github.com/axios/axios/tree/v1.x/dist

    文件结构:

    引入文件需要注意的问题;

            顺序问题: vue.js 要在 element.js 之前,不然不会生效

     在引用elementUI 的css文件时,需要修改字体样式的url:

    如果还不生效,可能是因为在script标签创建vue,在div标签 设置id为【app】

     

    效果:

    测试代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    7. <title>elementUI本地引入测试title>
    8. <script src="./element/vue.js">script>
    9. <script src="./element/element.js">script>
    10. <link rel="stylesheet" href="./element/element.css">
    11. <script src="./axios/axios.min.js">script>
    12. head>
    13. <body>
    14. <div id="app" style="margin: auto;">
    15. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
    16. <el-form-item label="活动名称" prop="name">
    17. <el-input v-model="ruleForm.name">el-input>
    18. el-form-item>
    19. <el-form-item label="活动区域" prop="region">
    20. <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
    21. <el-option label="区域一" value="shanghai">el-option>
    22. <el-option label="区域二" value="beijing">el-option>
    23. el-select>
    24. el-form-item>
    25. <el-form-item label="活动时间" required>
    26. <el-col :span="11">
    27. <el-form-item prop="date1">
    28. <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;">
    29. el-date-picker>
    30. el-form-item>
    31. el-col>
    32. <el-col class="line" :span="2">-el-col>
    33. <el-col :span="11">
    34. <el-form-item prop="date2">
    35. <el-time-picker placeholder="选择时间" v-model="ruleForm.date2" style="width: 100%;">
    36. el-time-picker>
    37. el-form-item>
    38. el-col>
    39. el-form-item>
    40. <el-form-item label="即时配送" prop="delivery">
    41. <el-switch v-model="ruleForm.delivery">el-switch>
    42. el-form-item>
    43. <el-form-item label="活动性质" prop="type">
    44. <el-checkbox-group v-model="ruleForm.type">
    45. <el-checkbox label="美食/餐厅线上活动" name="type">el-checkbox>
    46. <el-checkbox label="地推活动" name="type">el-checkbox>
    47. <el-checkbox label="线下主题活动" name="type">el-checkbox>
    48. <el-checkbox label="单纯品牌曝光" name="type">el-checkbox>
    49. el-checkbox-group>
    50. el-form-item>
    51. <el-form-item label="特殊资源" prop="resource">
    52. <el-radio-group v-model="ruleForm.resource">
    53. <el-radio label="线上品牌商赞助">el-radio>
    54. <el-radio label="线下场地免费">el-radio>
    55. el-radio-group>
    56. el-form-item>
    57. <el-form-item label="活动形式" prop="desc">
    58. <el-input type="textarea" v-model="ruleForm.desc">el-input>
    59. el-form-item>
    60. <el-form-item>
    61. <el-button type="primary" @click="submitForm('ruleForm')">立即创建el-button>
    62. <el-button @click="resetForm('ruleForm')">重置el-button>
    63. el-form-item>
    64. el-form>
    65. <div>
    66. div>
    67. div>
    68. body>
    69. <script>
    70. new Vue({
    71. el: '#app',
    72. data: function () {
    73. return {
    74. serverUrl: 'http://127.0.0.1:9001/', //服务器地址
    75. multipleSelection: [], //多选数据列
    76. dialogFormVisible: false,
    77. formLabelWidth: '100px',
    78. align: "center",
    79. businessIdList: [],
    80. businessAddressList: [],
    81. clientNameList: [],
    82. currentPage: 1, //当前所在页面
    83. total: 0, //总条数
    84. tableData: [],
    85. param: {
    86. key: "maintenanceCompany",
    87. page: {
    88. pageNum: 1,
    89. pageSize: 10
    90. }
    91. },
    92. autosize: { minRows: 2, maxRows: 6 },
    93. ruleForm: {
    94. name: '',
    95. region: '',
    96. date1: '',
    97. date2: '',
    98. delivery: false,
    99. type: [],
    100. resource: '',
    101. desc: ''
    102. },
    103. searchForm: {
    104. sign: '',
    105. customerAddress: '',
    106. userCustomerName: ''
    107. },
    108. rules: {
    109. name: [
    110. { required: true, message: '请输入活动名称', trigger: 'blur' },
    111. { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
    112. ],
    113. region: [
    114. { required: true, message: '请选择活动区域', trigger: 'change' }
    115. ],
    116. date1: [
    117. { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
    118. ],
    119. date2: [
    120. { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
    121. ],
    122. type: [
    123. { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
    124. ],
    125. resource: [
    126. { required: true, message: '请选择活动资源', trigger: 'change' }
    127. ],
    128. desc: [
    129. { required: true, message: '请填写活动形式', trigger: 'blur' }
    130. ]
    131. }
    132. }
    133. },
    134. methods: {
    135. submitForm(formName) {
    136. let that = this
    137. this.$refs[formName].validate((valid) => {
    138. if (valid) {
    139. axios.post(that.serverUrl + '/test/insert', that.ruleForm).then(res => {
    140. let data = res.data;
    141. if (data.code == 100000) {
    142. that.$message({
    143. message: '添加成功',
    144. type: 'success'
    145. })
    146. that.resetForm("ruleForm")
    147. } else {
    148. that.$error(data.message)
    149. }
    150. })
    151. } else {
    152. console.log('error submit!!');
    153. return false;
    154. }
    155. });
    156. },
    157. cancel(formName) {
    158. this.dialogFormVisible = false
    159. this.$refs[formName].resetFields();
    160. },
    161. resetForm(formName) {
    162. this.$refs[formName].resetFields();
    163. console.log(this.$refs[formName]);
    164. },
    165. handleSelectionChange(val) {
    166. this.multipleSelection = val;
    167. let data = ''
    168. this.idList = []
    169. this.businessAddressList = []
    170. this.clientNameList = []
    171. for (const key in val) {
    172. this.idList.push(val[key].sign)
    173. this.businessAddressList.push(val[key].customerAddress)
    174. this.clientNameList.push(val[key].userCustomerName)
    175. }
    176. },
    177. search() {
    178. let param = Object.assign(this.searchForm, this.param);
    179. axios.post(this.serverUrl + '/import-fault-business-sign/findAll', param).then(res => {
    180. let result = res.data.data.pageResult;
    181. this.tableData = result.datas
    182. this.total = result.total
    183. })
    184. },
    185. selectList() {
    186. this.ruleForm.businessId = this.idList.join(',')
    187. this.ruleForm.businessAddress = this.businessAddressList.join(',')
    188. this.ruleForm.clientName = this.clientNameList.join(',')
    189. this.dialogFormVisible = false
    190. console.log(this.idList.join(','));
    191. console.log(this.businessAddressList.join(','));
    192. console.log(this.clientNameList.join(','));
    193. },
    194. handleSizeChange(val) {
    195. console.log(`每页 ${val} 条`);
    196. this.param.page.pageSize = val
    197. this.findAll()
    198. },
    199. handleCurrentChange(val) {
    200. console.log(`当前页: ${val}`);
    201. this.currentPage = val
    202. this.param.page.pageNum = val
    203. this.findAll()
    204. },
    205. queryBusiness() {
    206. this.findAll()
    207. this.dialogFormVisible = true
    208. },
    209. //获取数据
    210. findAll() {
    211. axios.post(this.serverUrl + '/test/findAll', this.param).then(res => {
    212. let result = res.data.data.pageResult;
    213. this.tableData = result.datas
    214. this.total = result.total
    215. console.log('data', this.tableData);
    216. })
    217. }
    218. }
    219. })
    220. script>
    221. html>
  • 相关阅读:
    STM32环境搭建+创建工程
    【JVM笔记】Serial回收器:串行回收
    阿里云OSS、用户认证与就诊人
    揭秘拼多多API接口的魅力与价值:商品查询,获取指定商品的详细信息,如价格、库存等
    Redis系列——5种常见数据类型day1-3
    C语言:指针的应用
    如何实现与FDA保持邮件通信安全加密?
    JVM 补充——StringTable
    材料安全数据分析表(一)丨Abnova KLH IgG (小鼠) ELISA试剂盒
    联合体(共用体)
  • 原文地址:https://blog.csdn.net/qq_41897021/article/details/126656063