FeedCarManagement.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  1. <template>
  2. <div>
  3. <el-card class="box-card">
  4. <!-- 搜索区域 -->
  5. <div class="search-bx1">
  6. <el-input v-model="searchData.number" placeholder="饲喂车编号" style="width: 220px;" class="g-mr20" clearable />
  7. <el-input v-model="searchData.name" placeholder="饲喂车名称" style="width: 220px;" class="g-mr20" clearable />
  8. <el-input-number v-model="searchData.min_capacity" style="width:120px;" :controls="false" placeholder="载量" />
  9. <span style="margin:0px 8px;">至</span>
  10. <el-input-number v-model="searchData.max_capacity" style="width:120px;" class="g-mr20" :controls="false" placeholder="载量" />
  11. <el-button type="primary" @click="form_search">搜索</el-button>
  12. <el-button type="primary" @click="form_clear">重置</el-button>
  13. <el-button type="primary" v-if="isButtonEdit" @click="form_add">添加</el-button>
  14. <!-- <el-button type="primary" @click="form_export">导出</el-button> -->
  15. </div>
  16. <!-- 表格 -->
  17. <el-table key="0" :data="tableList" v-loading="tableLoading" element-loading-text="给我一点时间" border fit>
  18. <el-table-column label="序号" width="50px" align="center">
  19. <template slot-scope="scope">
  20. <span>{{ scope.row.id }}</span>
  21. </template>
  22. </el-table-column>
  23. <el-table-column label="饲喂车编号" min-width="150px" align="center">
  24. <template slot-scope="scope">
  25. <span>{{ scope.row.number }}</span>
  26. </template>
  27. </el-table-column>
  28. <el-table-column label="饲喂车名称" min-width="150px" align="center">
  29. <template slot-scope="scope">
  30. <span>{{ scope.row.name }}</span>
  31. </template>
  32. </el-table-column>
  33. <el-table-column label="容量(kg)" min-width="150px" align="center">
  34. <template slot-scope="scope">
  35. <span>{{ scope.row.capacity }}</span>
  36. </template>
  37. </el-table-column>
  38. <el-table-column label="装车记录" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
  39. <template slot-scope="scope">
  40. <el-button type="primary" size="mini" icon="el-icon-edit" @click="form_record_see(scope.row)">查看</el-button>
  41. </template>
  42. </el-table-column>
  43. <!-- <el-table-column label="状态" min-width="100px" align="center">
  44. <template slot-scope="scope">
  45. <el-switch v-model="scope.row.mg_state" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" />
  46. </template>
  47. </el-table-column> -->
  48. <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
  49. <template slot-scope="scope">
  50. <!-- 修改按钮 -->
  51. <el-button type="primary" v-if="isButtonEdit" size="mini" icon="el-icon-edit" @click="form_edit(scope.row)">修改</el-button>
  52. <!-- 删除按钮 -->
  53. <el-button type="danger" v-if="isButtonEdit" size="mini" icon="el-icon-delete" @click="form_delete(scope.row)">删除</el-button>
  54. </template>
  55. </el-table-column>
  56. </el-table>
  57. <!-- 分页区域 -->
  58. <el-pagination @size-change="change_size_page" @current-change="change_current_page" :current-page="searchData.page" :page-sizes="[1,5,10,20,30,50]" :page-size="searchData.page_size" layout="total, prev, pager, next" :total="searchData.total"/>
  59. </el-card>
  60. <!-- 弹窗 新增or修改 -->
  61. <el-dialog :title="addFormTxt[addFormStatus]" :visible.sync="addFormShow" @close="add_dialog_close" width="50%">
  62. <div class="">
  63. <el-form ref="addFormRef" :rules="addFormRules" :model="addForm" label-position="right" label-width="140px" style="width:50%;margin:0 auto 50px">
  64. <el-form-item label="饲喂车编号:" prop="number">
  65. <el-input v-model="addForm.number" ></el-input>
  66. </el-form-item>
  67. <el-form-item label="饲喂车名称:" prop="name">
  68. <el-input v-model="addForm.name" ></el-input>
  69. </el-form-item>
  70. <el-form-item label="容量(kg):" prop="capacity">
  71. <el-input v-model="addForm.capacity" ></el-input>
  72. </el-form-item>
  73. </el-form>
  74. <div slot="footer" class="dialog-footer">
  75. <el-button type="primary" @click="addFormStatus==='create'?add_dialog_save():edit_dialog_save()">确认</el-button>
  76. <el-button @click="addFormShow = false">关闭</el-button>
  77. </div>
  78. </div>
  79. </el-dialog>
  80. <el-dialog :title="addFormTxt[addFormStatus]" :visible.sync="seeFormShow" @close="see_dialog_close" width="80%">
  81. <div class="">
  82. <div class="search-bx1">
  83. <el-date-picker v-model="searchData2.inputDatetime" type="daterange" range-separator="至" start-placeholder="装车时间" end-placeholder="装车时间" class="g-mr20" />
  84. <el-select v-model="searchData2.calf_category_id" filterable placeholder="犊牛类型" style="width: 150px;" clearable class="g-mr20" >
  85. <el-option v-for="item in calfTypeList" :key="item.id" :label="item.name" :value="item.id" />
  86. </el-select>
  87. <el-input v-model="searchData2.name" placeholder="配方名称" style="width: 180px;" class="g-mr20" clearable />
  88. <el-button type="primary" @click="form_search2">搜索</el-button>
  89. </div>
  90. <el-table key="0" :data="tableList2" v-loading="tableLoading2" element-loading-text="给我一点时间" border fit>
  91. <el-table-column label="序号" width="50px" align="center">
  92. <template slot-scope="scope">
  93. <span>{{ scope.row.id }}</span>
  94. </template>
  95. </el-table-column>
  96. <el-table-column label="装车时间" min-width="150px" align="center">
  97. <template slot-scope="scope">
  98. <span>{{ scope.row.created_at_format }}</span>
  99. </template>
  100. </el-table-column>
  101. <el-table-column label="犊牛类型" min-width="150px" align="center">
  102. <template slot-scope="scope">
  103. <span>{{ scope.row.calf_category_name }}</span>
  104. </template>
  105. </el-table-column>
  106. <el-table-column label="配方名称" min-width="150px" align="center">
  107. <template slot-scope="scope">
  108. <span>{{ scope.row.formula_name }}</span>
  109. </template>
  110. </el-table-column>
  111. <el-table-column label="装车量(kg)" min-width="150px" align="center">
  112. <template slot-scope="scope">
  113. <span>{{ scope.row.capacity }}</span>
  114. </template>
  115. </el-table-column>
  116. </el-table>
  117. <!-- 分页区域 -->
  118. <el-pagination @size-change="change_size_page2" @current-change="change_current_page2" :current-page="searchData2.page" :page-sizes="[1,5,10,20,30,50]" :page-size="searchData2.page_size" layout="total, prev, pager, next" :total="searchData2.total"/>
  119. <div slot="footer" class="dialog-footer">
  120. <el-button @click="seeFormShow = false">关闭</el-button>
  121. </div>
  122. </div>
  123. </el-dialog>
  124. </div>
  125. </template>
  126. <script>
  127. import { ajaxDataGet, ajaxDataPost, ajaxDataPut, ajaxDataDelete, checkButtons} from '@/api/common'
  128. import { parseTime, json2excel } from '@/utils/index.js'
  129. export default {
  130. data() {
  131. return {
  132. //接口 - 获取 - 表格
  133. url_get_table:'/api/v1/ops/base_setting/feed_vehicle/list',
  134. //接口 - 新增 - 表格
  135. url_add_table:'/api/v1/ops/base_setting/feed_vehicle/add',
  136. //接口 - 修改 - 表格
  137. url_edit_table:'/api/v1/ops/base_setting/feed_vehicle/update',
  138. //接口 - 删除 - 表格
  139. url_delete_table:'/api/v1/ops/base_setting/feed_vehicle/is_show',
  140. //接口 - 获取 - 弹窗里表格
  141. url_get_table2:'/api/v1/ops/base_setting/feed_vehicle/logs',
  142. //接口 - 下拉框 列表
  143. url_get_select1:'/role/getAll',
  144. //按钮权限
  145. isButtonEdit:false,
  146. //获取 - 表格数据 - 参数
  147. searchData:{
  148. name: "",
  149. number: "",
  150. min_capacity: undefined,
  151. max_capacity: undefined,
  152. page: 1, //页码
  153. page_size: 10, //每页数量
  154. total:0, //总页数
  155. pastureId: ""
  156. },
  157. tableLoading: false,
  158. //表格内容
  159. tableList:[
  160. { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
  161. { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
  162. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  163. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  164. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  165. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  166. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  167. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  168. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  169. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  170. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  171. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  172. ],
  173. //犊牛类型下拉框
  174. calfTypeList:[
  175. ],
  176. searchData2:{
  177. start_time: parseTime(new Date(), '{y}-{m}-{d}'),
  178. end_time: parseTime(new Date(), '{y}-{m}-{d}'),
  179. inputDatetime: [new Date(), new Date()],
  180. name: "",
  181. calf_category_id: undefined,
  182. page: 1, //页码
  183. page_size: 10, //每页数量
  184. total:0, //总页数
  185. pastureId: ""
  186. },
  187. tableLoading2: false,
  188. //表格内容
  189. tableList2:[
  190. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
  191. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
  192. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  193. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  194. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  195. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  196. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  197. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  198. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  199. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  200. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  201. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  202. ],
  203. addFormShow:false,
  204. addFormStatus: '',
  205. addFormTxt: { edit: '修改', create: '新增' },
  206. addForm:{
  207. name:'',number:'' ,capacity:'' ,id:''
  208. },
  209. addFormRules:{
  210. name: [
  211. { required: true, message: '类型必填', trigger: 'blur' },
  212. ],
  213. },
  214. seeFormShow:false,
  215. seeFormStatus: '',
  216. seeFormTxt: { edit: '修改', create: '新增' },
  217. seeForm:{
  218. name:'',id:''
  219. },
  220. }
  221. },
  222. created(){
  223. //获取按钮权限
  224. const isButtonEdit = checkButtons(this.$store.state.buttonsList, "饲喂车管理编辑")
  225. this.isButtonEdit = isButtonEdit
  226. console.log('this.isButtonEdit==========',this.isButtonEdit)
  227. //获取下拉框
  228. this.get_select_list1()
  229. //表格 - 初始化
  230. this.get_table_data()
  231. },
  232. methods:{
  233. //获取 下拉框
  234. get_select_list1(){
  235. var me = this
  236. var send_url = '/api/v1/ops/base_setting/calf_type/list?page=1&page_size=1000'
  237. ajaxDataPost(send_url, {"name": "" }).then(e => {
  238. console.log("下拉框1:",e.data.list)
  239. //打印请求成功结果
  240. if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0 ){
  241. me.calfTypeList = []
  242. } else {
  243. me.calfTypeList = e.data.list
  244. }
  245. })
  246. // ajaxDataGet('/authdata/pasture', { "page": 1, "page_size": 1000}).then(e => {
  247. // console.log("牧场下拉框1:",e)
  248. // //打印请求成功结果
  249. // if(e.data == null || e.data == undefined ||e.data.length == 0 ){
  250. // me.pastureList = []
  251. // } else {
  252. // me.pastureList = e.data
  253. // }
  254. // })
  255. },
  256. //获取 表格
  257. get_table_data() {
  258. var me = this
  259. me.tableLoading = true
  260. console.log("searchData======>", me.searchData)
  261. var send_url = me.url_get_table + '?page=' + me.searchData.page + '&page_size=' + me.searchData.page_size
  262. ajaxDataPost(send_url, me.searchData).then(e => {
  263. console.log("表格请求结果:",e)
  264. //打印请求成功结果
  265. if(e.code == 200 ){
  266. me.tableList = e.data.list
  267. me.searchData.total = e.data.total; // 总数
  268. me.searchData.page = e.data.page; //页码
  269. me.searchData.page_size = e.data.page_size; //每页数量
  270. } else {
  271. me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
  272. }
  273. setTimeout(() => {
  274. me.tableLoading = false
  275. }, 100)
  276. })
  277. },
  278. //搜索 查询表格
  279. form_search(){
  280. var me = this
  281. console.log('请求表格列表searchData',me.searchData)
  282. me.get_table_data()
  283. },
  284. //重置 表格
  285. form_clear(){
  286. var me = this
  287. me.searchData.name = ""
  288. me.searchData.number = ""
  289. me.searchData.min_capacity = undefined
  290. me.searchData.max_capacity = undefined
  291. me.searchData.pastureId = ""
  292. me.get_table_data()
  293. },
  294. //监听 page_size 改变的事件
  295. change_size_page(item){
  296. console.log(item)
  297. // this.searchData.page_size = item
  298. // this.getUserList()
  299. },
  300. //监听 page 改变的事件
  301. change_current_page(item){
  302. console.log(item)
  303. this.searchData.page = item
  304. this.get_table_data()
  305. },
  306. //清空弹窗表单信息
  307. reset_form(){
  308. this.addForm.name = ''
  309. this.addForm.number = ''
  310. this.addForm.capacity = ''
  311. this.addForm.id = ''
  312. },
  313. //新增
  314. form_add() {
  315. this.reset_form()
  316. this.addFormStatus = 'create'
  317. this.addFormShow = true
  318. this.$nextTick(() => {
  319. this.$refs['addFormRef'].clearValidate()
  320. })
  321. },
  322. //编辑
  323. form_edit(row) {
  324. console.log('行内容row=========', row)
  325. //编辑行内容赋值
  326. this.addForm = Object.assign({}, row)
  327. this.addFormStatus = 'edit'
  328. this.addFormShow = true
  329. this.$nextTick(() => {
  330. this.$refs['addFormRef'].clearValidate()
  331. })
  332. },
  333. //新增关闭
  334. add_dialog_close(){
  335. //内容重置
  336. this.$refs['addFormRef'].resetFields()
  337. },
  338. //新增 保存
  339. add_dialog_save() {
  340. var me = this
  341. this.$refs['addFormRef'].validate(valid => {
  342. //验证成功
  343. if (valid) {
  344. //发起请求
  345. var send_data = {
  346. "name": me.addForm.name,
  347. "number": me.addForm.number,
  348. "capacity": me.addForm.capacity,
  349. }
  350. console.log("弹窗参数:", send_data)
  351. //关闭弹窗
  352. // me.addFormShow = false
  353. //加载 - 发送新增保存
  354. ajaxDataPost(me.url_add_table, send_data).then(e => {
  355. console.log("新增结果:",e)
  356. //打印请求成功结果
  357. if(e.code == 200 ){
  358. me.$message({ type: 'success', message: '新增成功!' , duration: 2000 })
  359. //关闭弹窗
  360. me.addFormShow = false
  361. me.get_table_data()
  362. } else {
  363. me.$message({ type: 'error', message: '新增失败!' + e.msg, duration: 2000 })
  364. }
  365. })
  366. }
  367. })
  368. },
  369. //编辑 保存
  370. edit_dialog_save(){
  371. var me = this
  372. this.$refs['addFormRef'].validate(valid => {
  373. //验证成功
  374. if (valid) {
  375. //发起请求
  376. var send_data = {
  377. "name": me.addForm.name,
  378. "number": me.addForm.number,
  379. "capacity": me.addForm.capacity,
  380. "id": me.addForm.id,
  381. }
  382. console.log("弹窗参数:", send_data)
  383. //关闭弹窗
  384. // me.addFormShow = false
  385. //加载 - 发送新增保存
  386. ajaxDataPut(me.url_edit_table, send_data).then(e => {
  387. console.log("编辑结果:",e)
  388. //打印请求成功结果
  389. if(e.code == 200 ){
  390. me.$message({ type: 'success', message: '编辑成功!' , duration: 2000 })
  391. //关闭弹窗
  392. me.addFormShow = false
  393. me.get_table_data()
  394. } else {
  395. me.$message({ type: 'error', message: '编辑失败!' + e.msg, duration: 2000 })
  396. }
  397. })
  398. }
  399. })
  400. },
  401. form_delete(row) {
  402. var me = this
  403. me.$confirm('是否删除此条内容?', '提示', {
  404. confirmButtonText: '确定',
  405. cancelButtonText: '取消',
  406. type: 'warning'
  407. }).then(() => {
  408. console.log("删除的ID参数:", row.id)
  409. //加载 - 发送新增保存
  410. ajaxDataDelete(me.url_delete_table + '/' +row.id, {}).then(e => {
  411. console.log("编辑结果:",e)
  412. //打印请求成功结果
  413. if(e.code == 200 ){
  414. me.$message({ type: 'success', message: '删除成功!' });
  415. me.get_table_data()
  416. } else {
  417. me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
  418. }
  419. })
  420. }).catch(() => {
  421. me.$message({
  422. type: 'info',
  423. message: '已取消删除'
  424. });
  425. });
  426. },
  427. form_record_see(row) {
  428. console.log('行内容row=========', row)
  429. //编辑行内容赋值
  430. this.seeForm = Object.assign({}, row)
  431. this.seeFormShow = true
  432. },
  433. //新增关闭
  434. see_dialog_close(){
  435. //内容重置
  436. this.seeFormShow = false
  437. },
  438. //获取 表格
  439. get_table_data2() {
  440. var me = this
  441. me.tableLoading2 = true
  442. console.log("searchData2======>", me.searchData2)
  443. var send_url = me.url_get_table2 + '?page=' + me.searchData2.page + '&page_size=' + me.searchData2.page_size
  444. ajaxDataPost(send_url, me.searchData2).then(e => {
  445. console.log("表格请求结果:",e)
  446. //打印请求成功结果
  447. if(e.code == 200 ){
  448. me.tableList2 = e.data.list
  449. me.searchData2.total = e.data.total; // 总数
  450. me.searchData2.page = e.data.page; //页码
  451. me.searchData2.page_size = e.data.page_size; //每页数量
  452. } else {
  453. me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
  454. }
  455. setTimeout(() => {
  456. me.tableLoading2 = false
  457. }, 100)
  458. })
  459. },
  460. //搜索 查询表格
  461. form_search2(){
  462. var me = this
  463. console.log(me.searchData2.inputDatetime[0])
  464. var time1 = Date.parse(new Date())
  465. console.log(time1)
  466. if (me.searchData2.inputDatetime !== '' && me.searchData2.inputDatetime !== null) {
  467. me.searchData2.start_time = parseTime(me.searchData2.inputDatetime[0], '{y}-{m}-{d}')
  468. me.searchData2.end_time = parseTime(me.searchData2.inputDatetime[1], '{y}-{m}-{d}')
  469. } else {
  470. me.searchData2.inputDatetime = ''
  471. me.searchData2.start_time = ''
  472. me.searchData2.end_time = ''
  473. }
  474. console.log('请求表格列表searchData2',me.searchData2)
  475. me.get_table_data2()
  476. },
  477. //重置 表格
  478. form_clear2(){
  479. var me = this
  480. me.searchData2.name = ""
  481. me.get_table_data2()
  482. },
  483. //监听 page_size 改变的事件
  484. change_size_page2(item){
  485. console.log(item)
  486. // this.searchData.page_size = item
  487. // this.getUserList()
  488. },
  489. //监听 page 改变的事件
  490. change_current_page2(item){
  491. console.log(item)
  492. this.searchData2.page = item
  493. this.get_table_data2()
  494. },
  495. form_export() {
  496. //获取请求表格数据的参数
  497. //this.download.getdataListParm.parammaps = this.tableObj.getdataListParm.parammaps
  498. //请求表格
  499. // GetDataByName(this.download.getdataListParm).then(response => {
  500. // if (response.data.list !== null) {
  501. // this.download.list = response.data.list
  502. // } else {
  503. // this.download.list = []
  504. // }
  505. // var excelDatas = [
  506. // {
  507. // tHeader: ['表头1', '表头2', '表头3', '表头4',],
  508. // filterVal: ['title1', 'title2', 'title3', 'title4'],
  509. // tableDatas: this.download.list,
  510. // sheetName: 'Sheet1'
  511. // }
  512. // ]
  513. // json2excel(excelDatas, '表格大标题', true, 'xlsx')
  514. // })
  515. var excelDatas = [
  516. {
  517. tHeader: ['表头1', '表头2', '表头3', '表头4',],
  518. filterVal: ['title1', 'title2', 'title3', 'title4'],
  519. tableDatas: [
  520. {title1: "内容1",title2: "内容2",title3: "内容3",title4: "内容4"},
  521. {title1: "内容11",title2: "内容22",title3: "内容32",title4: "内容44"},
  522. {title1: "内容111",title2: "内容222",title3: "内容333",title4: "内容444"},
  523. ],
  524. sheetName: 'Sheet1'
  525. }
  526. ]
  527. json2excel(excelDatas, '表格大标题', true, 'xlsx')
  528. }
  529. }
  530. }
  531. </script>
  532. <!-- 加了scoped,则是仅在此组件里生效 -->
  533. <style scoped>
  534. </style>