FeedCarManagement.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696
  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. feed_vehicle_id: undefined,
  183. page: 1, //页码
  184. page_size: 10, //每页数量
  185. total:0, //总页数
  186. pastureId: ""
  187. },
  188. tableLoading2: false,
  189. //表格内容
  190. tableList2:[
  191. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
  192. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
  193. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  194. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  195. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  196. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  197. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  198. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  199. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  200. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  201. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  202. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  203. ],
  204. addFormShow:false,
  205. addFormStatus: '',
  206. addFormTxt: { edit: '修改', create: '新增' },
  207. addForm:{
  208. name:'',number:'' ,capacity:'' ,id:''
  209. },
  210. addFormRules:{
  211. name: [ { required: true, message: '饲喂车名称必填', trigger: 'blur' }, ],
  212. number: [ { required: true, message: '饲喂车编号必填', trigger: 'blur' }, ],
  213. capacity: [ { required: true, message: '容量必填', trigger: 'blur' }, ],
  214. },
  215. seeFormShow:false,
  216. seeFormStatus: '',
  217. seeFormTxt: { edit: '修改', create: '新增' },
  218. seeForm:{
  219. name:'',id:''
  220. },
  221. }
  222. },
  223. created(){
  224. //获取按钮权限
  225. const isButtonEdit = checkButtons(this.$store.state.buttonsList, "饲喂车管理编辑")
  226. this.isButtonEdit = isButtonEdit
  227. console.log('this.isButtonEdit==========',this.isButtonEdit)
  228. //获取下拉框
  229. this.get_select_list1()
  230. //表格 - 初始化
  231. this.get_table_data()
  232. },
  233. methods:{
  234. //获取 下拉框
  235. get_select_list1(){
  236. var me = this
  237. var send_url = '/api/v1/ops/base_setting/calf_type/list?page=1&page_size=1000'
  238. ajaxDataPost(send_url, {"name": "" }).then(e => {
  239. console.log("下拉框1:",e.data.list)
  240. //打印请求成功结果
  241. if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0 ){
  242. me.calfTypeList = []
  243. } else {
  244. me.calfTypeList = e.data.list
  245. }
  246. })
  247. // ajaxDataGet('/authdata/pasture', { "page": 1, "page_size": 1000}).then(e => {
  248. // console.log("牧场下拉框1:",e)
  249. // //打印请求成功结果
  250. // if(e.data == null || e.data == undefined ||e.data.length == 0 ){
  251. // me.pastureList = []
  252. // } else {
  253. // me.pastureList = e.data
  254. // }
  255. // })
  256. },
  257. //获取 表格
  258. get_table_data() {
  259. var me = this
  260. me.tableLoading = true
  261. console.log("searchData======>", me.searchData)
  262. var send_url = me.url_get_table + '?page=' + me.searchData.page + '&page_size=' + me.searchData.page_size
  263. ajaxDataPost(send_url, me.searchData).then(e => {
  264. console.log("表格请求结果:",e)
  265. //打印请求成功结果
  266. if(e.code == 200 ){
  267. me.tableList = e.data.list
  268. me.searchData.total = e.data.total; // 总数
  269. me.searchData.page = e.data.page; //页码
  270. me.searchData.page_size = e.data.page_size; //每页数量
  271. } else {
  272. me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
  273. }
  274. setTimeout(() => {
  275. me.tableLoading = false
  276. }, 100)
  277. })
  278. },
  279. //搜索 查询表格
  280. form_search(){
  281. var me = this
  282. console.log('请求表格列表searchData',me.searchData)
  283. me.get_table_data()
  284. },
  285. //重置 表格
  286. form_clear(){
  287. var me = this
  288. me.searchData.name = ""
  289. me.searchData.number = ""
  290. me.searchData.min_capacity = undefined
  291. me.searchData.max_capacity = undefined
  292. me.searchData.pastureId = ""
  293. me.get_table_data()
  294. },
  295. //监听 page_size 改变的事件
  296. change_size_page(item){
  297. console.log(item)
  298. // this.searchData.page_size = item
  299. // this.getUserList()
  300. },
  301. //监听 page 改变的事件
  302. change_current_page(item){
  303. console.log(item)
  304. this.searchData.page = item
  305. this.get_table_data()
  306. },
  307. //清空弹窗表单信息
  308. reset_form(){
  309. this.addForm.name = ''
  310. this.addForm.number = ''
  311. this.addForm.capacity = ''
  312. this.addForm.id = ''
  313. },
  314. //新增
  315. form_add() {
  316. this.reset_form()
  317. this.addFormStatus = 'create'
  318. this.addFormShow = true
  319. this.$nextTick(() => {
  320. this.$refs['addFormRef'].clearValidate()
  321. })
  322. },
  323. //编辑
  324. form_edit(row) {
  325. console.log('行内容row=========', row)
  326. //编辑行内容赋值
  327. this.addForm = Object.assign({}, row)
  328. this.addFormStatus = 'edit'
  329. this.addFormShow = true
  330. this.$nextTick(() => {
  331. this.$refs['addFormRef'].clearValidate()
  332. })
  333. },
  334. //新增关闭
  335. add_dialog_close(){
  336. //内容重置
  337. this.$refs['addFormRef'].resetFields()
  338. },
  339. //新增 保存
  340. add_dialog_save() {
  341. var me = this
  342. this.$refs['addFormRef'].validate(valid => {
  343. //验证成功
  344. if (valid) {
  345. //发起请求
  346. var send_data = {
  347. "name": me.addForm.name,
  348. "number": me.addForm.number,
  349. "capacity": parseFloat(me.addForm.capacity),
  350. }
  351. console.log("弹窗参数:", send_data)
  352. //关闭弹窗
  353. // me.addFormShow = false
  354. //加载 - 发送新增保存
  355. ajaxDataPost(me.url_add_table, send_data).then(e => {
  356. console.log("新增结果:",e)
  357. //打印请求成功结果
  358. if(e.code == 200 ){
  359. me.$message({ type: 'success', message: '新增成功!' , duration: 2000 })
  360. //关闭弹窗
  361. me.addFormShow = false
  362. me.get_table_data()
  363. } else {
  364. me.$message({ type: 'error', message: '新增失败!' + e.msg, duration: 2000 })
  365. }
  366. })
  367. }
  368. })
  369. },
  370. //编辑 保存
  371. edit_dialog_save(){
  372. var me = this
  373. this.$refs['addFormRef'].validate(valid => {
  374. //验证成功
  375. if (valid) {
  376. //发起请求
  377. var send_data = {
  378. "name": me.addForm.name,
  379. "number": me.addForm.number,
  380. "capacity": me.addForm.capacity,
  381. "id": me.addForm.id,
  382. }
  383. console.log("弹窗参数:", send_data)
  384. //关闭弹窗
  385. // me.addFormShow = false
  386. //加载 - 发送新增保存
  387. ajaxDataPut(me.url_edit_table, send_data).then(e => {
  388. console.log("编辑结果:",e)
  389. //打印请求成功结果
  390. if(e.code == 200 ){
  391. me.$message({ type: 'success', message: '编辑成功!' , duration: 2000 })
  392. //关闭弹窗
  393. me.addFormShow = false
  394. me.get_table_data()
  395. } else {
  396. me.$message({ type: 'error', message: '编辑失败!' + e.msg, duration: 2000 })
  397. }
  398. })
  399. }
  400. })
  401. },
  402. form_delete(row) {
  403. var me = this
  404. me.$confirm('是否删除此条内容?', '提示', {
  405. confirmButtonText: '确定',
  406. cancelButtonText: '取消',
  407. type: 'warning'
  408. }).then(() => {
  409. console.log("删除的ID参数:", row.id)
  410. //加载 - 发送新增保存
  411. ajaxDataDelete(me.url_delete_table + '/' +row.id, {}).then(e => {
  412. console.log("编辑结果:",e)
  413. //打印请求成功结果
  414. if(e.code == 200 ){
  415. me.$message({ type: 'success', message: '删除成功!' });
  416. me.get_table_data()
  417. } else {
  418. me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
  419. }
  420. })
  421. }).catch(() => {
  422. me.$message({
  423. type: 'info',
  424. message: '已取消删除'
  425. });
  426. });
  427. },
  428. form_record_see(row) {
  429. console.log('行内容row=========', row)
  430. //编辑行内容赋值
  431. this.seeForm = Object.assign({}, row)
  432. this.searchData2.feed_vehicle_id = row.id
  433. this.get_table_data2()
  434. this.seeFormShow = true
  435. },
  436. //新增关闭
  437. see_dialog_close(){
  438. //内容重置
  439. this.seeFormShow = false
  440. },
  441. //获取 表格
  442. get_table_data2() {
  443. var me = this
  444. me.tableLoading2 = true
  445. console.log("searchData2======>", me.searchData2)
  446. var send_url = me.url_get_table2 + '?page=' + me.searchData2.page + '&page_size=' + me.searchData2.page_size
  447. ajaxDataPost(send_url, me.searchData2).then(e => {
  448. console.log("表格请求结果:",e)
  449. //打印请求成功结果
  450. if(e.code == 200 ){
  451. me.tableList2 = e.data.list
  452. me.searchData2.total = e.data.total; // 总数
  453. me.searchData2.page = e.data.page; //页码
  454. me.searchData2.page_size = e.data.page_size; //每页数量
  455. } else {
  456. me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
  457. }
  458. setTimeout(() => {
  459. me.tableLoading2 = false
  460. }, 100)
  461. })
  462. },
  463. //搜索 查询表格
  464. form_search2(){
  465. var me = this
  466. console.log(me.searchData2.inputDatetime[0])
  467. var time1 = Date.parse(new Date())
  468. console.log(time1)
  469. if (me.searchData2.inputDatetime !== '' && me.searchData2.inputDatetime !== null) {
  470. me.searchData2.start_time = parseTime(me.searchData2.inputDatetime[0], '{y}-{m}-{d}')
  471. me.searchData2.end_time = parseTime(me.searchData2.inputDatetime[1], '{y}-{m}-{d}')
  472. } else {
  473. me.searchData2.inputDatetime = ''
  474. me.searchData2.start_time = ''
  475. me.searchData2.end_time = ''
  476. }
  477. console.log('请求表格列表searchData2',me.searchData2)
  478. me.get_table_data2()
  479. },
  480. //重置 表格
  481. form_clear2(){
  482. var me = this
  483. me.searchData2.name = ""
  484. me.get_table_data2()
  485. },
  486. //监听 page_size 改变的事件
  487. change_size_page2(item){
  488. console.log(item)
  489. // this.searchData.page_size = item
  490. // this.getUserList()
  491. },
  492. //监听 page 改变的事件
  493. change_current_page2(item){
  494. console.log(item)
  495. this.searchData2.page = item
  496. this.get_table_data2()
  497. },
  498. form_export() {
  499. //获取请求表格数据的参数
  500. //this.download.getdataListParm.parammaps = this.tableObj.getdataListParm.parammaps
  501. //请求表格
  502. // GetDataByName(this.download.getdataListParm).then(response => {
  503. // if (response.data.list !== null) {
  504. // this.download.list = response.data.list
  505. // } else {
  506. // this.download.list = []
  507. // }
  508. // var excelDatas = [
  509. // {
  510. // tHeader: ['表头1', '表头2', '表头3', '表头4',],
  511. // filterVal: ['title1', 'title2', 'title3', 'title4'],
  512. // tableDatas: this.download.list,
  513. // sheetName: 'Sheet1'
  514. // }
  515. // ]
  516. // json2excel(excelDatas, '表格大标题', true, 'xlsx')
  517. // })
  518. var excelDatas = [
  519. {
  520. tHeader: ['表头1', '表头2', '表头3', '表头4',],
  521. filterVal: ['title1', 'title2', 'title3', 'title4'],
  522. tableDatas: [
  523. {title1: "内容1",title2: "内容2",title3: "内容3",title4: "内容4"},
  524. {title1: "内容11",title2: "内容22",title3: "内容32",title4: "内容44"},
  525. {title1: "内容111",title2: "内容222",title3: "内容333",title4: "内容444"},
  526. ],
  527. sheetName: 'Sheet1'
  528. }
  529. ]
  530. json2excel(excelDatas, '表格大标题', true, 'xlsx')
  531. }
  532. }
  533. }
  534. </script>
  535. <!-- 加了scoped,则是仅在此组件里生效 -->
  536. <style scoped>
  537. </style>