index.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898
  1. <template>
  2. <div class="app-container">
  3. <!-- <el-dialog
  4. v-dialogDrag
  5. ref="dialog__wrapper">
  6. <div class="dialog-body">
  7. <div
  8. class="line"
  9. v-dialogDrag Width="$refs.dialog__wrapper">1111111111111111111</div>
  10. </div>
  11. </el-dialog> -->
  12. <el-row :gutter="20">
  13. <el-col :span="18">
  14. <!-- <draggable v-model="arr1" group="itxst" animation="300" :group="{name: 'dashboard',pull: true}">
  15. <transition-group>
  16. <div style = "width:300px;height:20px;border:1px soild #333" :class="item.id==1?'item forbid':'item'" v-for="item in arr1" key="1">{{item.name}}</div>
  17. </transition-group>
  18. </draggable> -->
  19. <div class="search">
  20. <el-select v-model="tableObj.getDataParameters.parammaps.dateType" placeholder="查询日期" @change="change_date_type">
  21. <el-option v-for="item in dateTypeList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
  22. </el-select>
  23. <el-select v-model="tableObj.getDataParameters.parammaps.type" filterable placeholder="数据类型" class="filter-item" style="width: 120px;" clearable>
  24. <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id" />
  25. </el-select>
  26. <el-select v-model="tableObj.getDataParameters.parammaps.dimension" @change="change_dimension" filterable placeholder="维度" class="filter-item" style="width: 120px;" >
  27. <el-option v-for="item in dimensionList" :key="item.id" :label="item.name" :value="item.id" />
  28. </el-select>
  29. <!-- <el-select v-model="tableObj.getDataParameters.parammaps.mixture" multiple placeholder="混料数据">
  30. <el-option v-for="item in mixtureList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
  31. </el-select>
  32. <el-select v-model="tableObj.getDataParameters.parammaps.spread" multiple placeholder="撒料数据">
  33. <el-option v-for="item in spreadList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
  34. </el-select> -->
  35. <el-cascader style = "width:400px;" ref = "cascader1" v-model="tableObj.getDataParameters.parammaps.mixture" :options="mixtureList" :props = "{ multiple: true, emitPath: false,}" :show-all-levels="false" @change="change_cascader1"></el-cascader>
  36. <el-cascader style = "width:400px;" ref = "cascader2" v-model="tableObj.getDataParameters.parammaps.spread" :options="spreadList" :props = "{ multiple: true, emitPath: false,}" :show-all-levels="false" @change="change_cascader2"></el-cascader>
  37. <el-button class="successBorder" @click="form_search">查询</el-button>
  38. <el-button class="successBorder" @click="form_clear">重置</el-button>
  39. </div>
  40. <div class="operation">
  41. <el-button class="success" icon="el-icon-plus" @click="form_add_screening">添加筛选条件</el-button>
  42. <el-button class="danger" icon="el-icon-delete" @click="form_clear_screening">清空筛选条件</el-button>
  43. </div>
  44. <div v-if="screeningVisible">
  45. <div class="search">
  46. <el-select v-model="screeningObj.screeningCondition" filterable placeholder="筛选条件" class="filter-item" style="width: 120px;" clearable @change="change_screening">
  47. <el-option v-for="item in screeningList" :key="item.id" :label="item.name" :value="item.id" />
  48. </el-select>
  49. <el-input v-model="screeningObj.screeningField" placeholder="筛选字段" style="width: 180px;" class="filter-item" clearable />
  50. <el-select v-model="screeningObj.screeningField" placeholder="筛选字段">
  51. <el-option v-for="item in screeningFieldList1" :key="item.id" :label="item.name" :value="item.id" ></el-option>
  52. </el-select>
  53. <el-select v-model="screeningObj.screeningField" placeholder="筛选字段">
  54. <el-option v-for="item in screeningFieldList2" :key="item.id" :label="item.name" :value="item.id" ></el-option>
  55. </el-select>
  56. <el-date-picker v-model="screeningObj.inputDatetime" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" />
  57. <el-button class="successBorder" @click="form_search_screening">查询</el-button>
  58. <el-button class="successBorder" @click="form_cancel_screening">重置</el-button>
  59. </div>
  60. <div>
  61. <el-row :gutter="20">
  62. <el-col :span="6" v-for = "(item,index) in screeningArr">
  63. <span style="font-size:14px;color:#555">{{index+1}}、条件:{{item.txt}}</span>
  64. </el-col>
  65. </el-row>
  66. </div>
  67. </div>
  68. <ChartTable/>
  69. <div>
  70. <!-- <div style = "">
  71. <el-select v-model="tableObj.getDataParameters.parammaps.dateType" multiple placeholder="维度">
  72. <el-option v-for="item in fieldTypeList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
  73. </el-select>
  74. </div> -->
  75. <BarChart v-if = "chartData.chartType == 'bar'" :chart-data="chartData" />
  76. <LineChart v-if = "chartData.chartType == 'line'" :chart-data="chartData" />
  77. <HorizontalBarChart v-if = "chartData.chartType == 'horizontal_bar'" :chart-data="chartData" />
  78. <PieChart v-if = "chartData.chartType == 'pie'" :chart-data="chartData" />
  79. <LineBarChart v-if = "chartData.chartType == 'line_bar'" :chart-data="chartData" />
  80. <!-- <div id="chartLine" style="width:100%;height:385px;" >
  81. </div> -->
  82. </div>
  83. </el-col>
  84. <el-col :span="6">
  85. <div class="chart-style-panel">
  86. <el-form label-position="top" size="mini">
  87. <el-form-item label="图表类型">
  88. <div class="chart-type-list">
  89. <span @click="switch_chart_type(item)" v-for="item in chartTypeList" style = "display:inline-block;height:30px;width:30px;margin-right:10px;margin-bottom:10px">
  90. <el-tooltip :content="item.desc" placement="top">
  91. <svg-icon class="icon" style="height:20px;width:20px" :icon-class="item.isUse? item.icon : (item.icon + '_disabled')" />
  92. </el-tooltip>
  93. </span>
  94. </div>
  95. </el-form-item>
  96. </el-form>
  97. </div>
  98. </el-col>
  99. </el-row>
  100. </div>
  101. </template>
  102. <script>
  103. import echarts from 'echarts'
  104. import draggable from 'vuedraggable'
  105. import ChartTable from '@/componentChart/ChartTable.vue'
  106. import LineChart from '@/componentChart/LineChart.vue'
  107. import BarChart from '@/componentChart/BarChart.vue'
  108. import HorizontalBarChart from '@/componentChart/HorizontalBarChart.vue'
  109. import PieChart from '@/componentChart/PieChart.vue'
  110. import LineBarChart from '@/componentChart/LineBarChart.vue'
  111. require('echarts/theme/macarons')
  112. import { GetDataByName, PostDataByName, failproccess, ExecDataByConfig, checkButtons } from '@/api/common'
  113. import Cookies from 'js-cookie'
  114. import Pagination from '@/components/Pagination'
  115. import { MessageBox } from 'element-ui'
  116. export default {
  117. name: 'ChartPanel2',
  118. components: { Pagination, draggable , ChartTable ,LineChart,BarChart ,HorizontalBarChart, PieChart, LineBarChart},
  119. data() {
  120. return {
  121. chartType:'line',
  122. chartTypeList:[
  123. // {type:'table', desc:"表格:任意维度数据" ,icon:'chart_table',isUse:true,id:0},
  124. {type:'line', desc:"折线图:任意维度数据" ,icon:'chart_line',isUse:false,id:0},
  125. {type:'bar', desc:"柱状图:任意维度数据" ,icon:'chart_bar',isUse:false,id:1},
  126. {type:'horizontal_bar', desc:"条形图:任意维度数据" ,icon:'horizontal_bar',isUse:false,id:2},
  127. {type:'pie', desc:"饼图:任意维度数据" ,icon:'chart_pie',isUse:false,id:3},
  128. {type:'line_bar', desc:"线柱图:任意维度数据" ,icon:'linebar_chart',isUse:false,id:4},
  129. ],
  130. isRoleEdit: [],
  131. dateTypeList: [
  132. { id: '汇总', name: '汇总' },
  133. { id: '分日', name: '分日' }
  134. ],
  135. typeList: [
  136. { id: '车次', name: '车次' },
  137. { id: '栏舍', name: '栏舍' }
  138. ],
  139. dimensionList: [
  140. { id: '栏舍', name: '栏舍' },
  141. { id: '配方', name: '配方' },
  142. { id: '班次', name: '班次' },
  143. { id: '车次', name: '车次' },
  144. { id: 'TMR', name: 'TMR' },
  145. { id: '牲畜大类', name: '牲畜大类' },
  146. { id: '牲畜小类', name: '牲畜小类' }
  147. ],
  148. //混料数据
  149. mixtureList: [],
  150. //撒料数据
  151. spreadList: [],
  152. //车次 - 数据1 - 栏舍 - 理论重量、实际重量、误差值、允许误差数、准确率(平均)、是否超出误差
  153. mixtureSpreadArr1: [
  154. {
  155. value: '理论重量',label: '理论重量',
  156. children: [
  157. { value: '理论重量-合计', label: '理论重量-合计'},
  158. { value: '理论重量-平均', label: '理论重量-平均'},
  159. { value: '理论重量-最大值', label: '理论重量-最大值'},
  160. { value: '理论重量-最小值', label: '理论重量-最小值'},
  161. { value: '理论重量-标准差', label: '理论重量-标准差'},
  162. { value: '理论重量-变异系数', label: '理论重量-变异系数'},
  163. ]
  164. },
  165. {
  166. value: '实际重量',label: '实际重量',
  167. children: [
  168. { value: '实际重量-合计', label: '实际重量-合计'},
  169. { value: '实际重量-平均', label: '实际重量-平均'},
  170. { value: '实际重量-最大值', label: '实际重量-最大值'},
  171. { value: '实际重量-最小值', label: '实际重量-最小值'},
  172. { value: '实际重量-标准差', label: '实际重量-标准差'},
  173. { value: '实际重量-变异系数', label: '实际重量-变异系数'},
  174. ]
  175. },
  176. {
  177. value: '误差值',label: '误差值',
  178. children: [
  179. { value: '误差值-合计', label: '误差值-合计'},
  180. { value: '误差值-平均', label: '误差值-平均'},
  181. { value: '误差值-最大值', label: '误差值-最大值'},
  182. { value: '误差值-最小值', label: '误差值-最小值'},
  183. { value: '误差值-标准差', label: '误差值-标准差'},
  184. { value: '误差值-变异系数', label: '误差值-变异系数'},
  185. ]
  186. },
  187. {
  188. value: '允许误差数',label: '允许误差数',
  189. children: [
  190. { value: '允许误差数-合计', label: '允许误差数-合计'},
  191. { value: '允许误差数-平均', label: '允许误差数-平均'},
  192. { value: '允许误差数-最大值', label: '允许误差数-最大值'},
  193. { value: '允许误差数-最小值', label: '允许误差数-最小值'},
  194. { value: '允许误差数-标准差', label: '允许误差数-标准差'},
  195. { value: '允许误差数-变异系数', label: '允许误差数-变异系数'},
  196. ]
  197. },
  198. { value: '准确率-平均',label: '准确率-平均'},
  199. { value: '是否超出误差',label: '是否超出误差'}
  200. ],
  201. //车次 - 数据2 - 配方 - 理论重量、实际重量、误差值、准确率(平均)
  202. mixtureSpreadArr2: [
  203. {
  204. value: '理论重量',label: '理论重量',
  205. children: [
  206. { value: '理论重量-合计', label: '理论重量-合计'},
  207. { value: '理论重量-平均', label: '理论重量-平均'},
  208. { value: '理论重量-最大值', label: '理论重量-最大值'},
  209. { value: '理论重量-最小值', label: '理论重量-最小值'},
  210. { value: '理论重量-标准差', label: '理论重量-标准差'},
  211. { value: '理论重量-变异系数', label: '理论重量-变异系数'},
  212. ]
  213. },
  214. {
  215. value: '实际重量',label: '实际重量',
  216. children: [
  217. { value: '实际重量-合计', label: '实际重量-合计'},
  218. { value: '实际重量-平均', label: '实际重量-平均'},
  219. { value: '实际重量-最大值', label: '实际重量-最大值'},
  220. { value: '实际重量-最小值', label: '实际重量-最小值'},
  221. { value: '实际重量-标准差', label: '实际重量-标准差'},
  222. { value: '实际重量-变异系数', label: '实际重量-变异系数'},
  223. ]
  224. },
  225. {
  226. value: '误差值',label: '误差值',
  227. children: [
  228. { value: '误差值-合计', label: '误差值-合计'},
  229. { value: '误差值-平均', label: '误差值-平均'},
  230. { value: '误差值-最大值', label: '误差值-最大值'},
  231. { value: '误差值-最小值', label: '误差值-最小值'},
  232. { value: '误差值-标准差', label: '误差值-标准差'},
  233. { value: '误差值-变异系数', label: '误差值-变异系数'},
  234. ]
  235. },
  236. { value: '准确率-平均',label: '准确率-平均'}
  237. ],
  238. //车次 - 数据3 - 班次 - 理论重量、实际重量、误差值、准确率(平均)、开始重量、结束重量
  239. mixtureSpreadArr3: [
  240. {
  241. value: '理论重量',label: '理论重量',
  242. children: [
  243. { value: '理论重量-合计', label: '理论重量-合计'},
  244. { value: '理论重量-平均', label: '理论重量-平均'},
  245. { value: '理论重量-最大值', label: '理论重量-最大值'},
  246. { value: '理论重量-最小值', label: '理论重量-最小值'},
  247. { value: '理论重量-标准差', label: '理论重量-标准差'},
  248. { value: '理论重量-变异系数', label: '理论重量-变异系数'},
  249. ]
  250. },
  251. {
  252. value: '实际重量',label: '实际重量',
  253. children: [
  254. { value: '实际重量-合计', label: '实际重量-合计'},
  255. { value: '实际重量-平均', label: '实际重量-平均'},
  256. { value: '实际重量-最大值', label: '实际重量-最大值'},
  257. { value: '实际重量-最小值', label: '实际重量-最小值'},
  258. { value: '实际重量-标准差', label: '实际重量-标准差'},
  259. { value: '实际重量-变异系数', label: '实际重量-变异系数'},
  260. ]
  261. },
  262. {
  263. value: '误差值',label: '误差值',
  264. children: [
  265. { value: '误差值-合计', label: '误差值-合计'},
  266. { value: '误差值-平均', label: '误差值-平均'},
  267. { value: '误差值-最大值', label: '误差值-最大值'},
  268. { value: '误差值-最小值', label: '误差值-最小值'},
  269. { value: '误差值-标准差', label: '误差值-标准差'},
  270. { value: '误差值-变异系数', label: '误差值-变异系数'},
  271. ]
  272. },
  273. { value: '准确率-平均',label: '准确率-平均'},
  274. {
  275. value: '开始重量',label: '开始重量',
  276. children: [
  277. { value: '开始重量-合计', label: '开始重量-合计'},
  278. { value: '开始重量-平均', label: '开始重量-平均'},
  279. { value: '开始重量-最大值', label: '开始重量-最大值'},
  280. { value: '开始重量-最小值', label: '开始重量-最小值'},
  281. { value: '开始重量-标准差', label: '开始重量-标准差'},
  282. { value: '开始重量-变异系数', label: '开始重量-变异系数'},
  283. ]
  284. },
  285. {
  286. value: '结束重量',label: '结束重量',
  287. children: [
  288. { value: '结束重量-合计', label: '结束重量-合计'},
  289. { value: '结束重量-平均', label: '结束重量-平均'},
  290. { value: '结束重量-最大值', label: '结束重量-最大值'},
  291. { value: '结束重量-最小值', label: '结束重量-最小值'},
  292. { value: '结束重量-标准差', label: '结束重量-标准差'},
  293. { value: '结束重量-变异系数', label: '结束重量-变异系数'},
  294. ]
  295. }
  296. ],
  297. //车次 - 数据4 - 车次 - 理论重量、实际重量、误差值、准确率(平均)、跳转方式、开始重量、结束重量、计划时间、开始时间、结束时间、过程时间
  298. mixtureSpreadArr4: [
  299. {
  300. value: '理论重量',label: '理论重量',
  301. children: [
  302. { value: '理论重量-合计', label: '理论重量-合计'},
  303. { value: '理论重量-平均', label: '理论重量-平均'},
  304. { value: '理论重量-最大值', label: '理论重量-最大值'},
  305. { value: '理论重量-最小值', label: '理论重量-最小值'},
  306. { value: '理论重量-标准差', label: '理论重量-标准差'},
  307. { value: '理论重量-变异系数', label: '理论重量-变异系数'},
  308. ]
  309. },
  310. {
  311. value: '实际重量',label: '实际重量',
  312. children: [
  313. { value: '实际重量-合计', label: '实际重量-合计'},
  314. { value: '实际重量-平均', label: '实际重量-平均'},
  315. { value: '实际重量-最大值', label: '实际重量-最大值'},
  316. { value: '实际重量-最小值', label: '实际重量-最小值'},
  317. { value: '实际重量-标准差', label: '实际重量-标准差'},
  318. { value: '实际重量-变异系数', label: '实际重量-变异系数'},
  319. ]
  320. },
  321. {
  322. value: '误差值',label: '误差值',
  323. children: [
  324. { value: '误差值-合计', label: '误差值-合计'},
  325. { value: '误差值-平均', label: '误差值-平均'},
  326. { value: '误差值-最大值', label: '误差值-最大值'},
  327. { value: '误差值-最小值', label: '误差值-最小值'},
  328. { value: '误差值-标准差', label: '误差值-标准差'},
  329. { value: '误差值-变异系数', label: '误差值-变异系数'},
  330. ]
  331. },
  332. { value: '准确率-平均',label: '准确率-平均'},
  333. { value: '跳转方式',label: '跳转方式'},
  334. {
  335. value: '开始重量',label: '开始重量',
  336. children: [
  337. { value: '开始重量-合计', label: '开始重量-合计'},
  338. { value: '开始重量-平均', label: '开始重量-平均'},
  339. { value: '开始重量-最大值', label: '开始重量-最大值'},
  340. { value: '开始重量-最小值', label: '开始重量-最小值'},
  341. { value: '开始重量-标准差', label: '开始重量-标准差'},
  342. { value: '开始重量-变异系数', label: '开始重量-变异系数'},
  343. ]
  344. },
  345. {
  346. value: '结束重量',label: '结束重量',
  347. children: [
  348. { value: '结束重量-合计', label: '结束重量-合计'},
  349. { value: '结束重量-平均', label: '结束重量-平均'},
  350. { value: '结束重量-最大值', label: '结束重量-最大值'},
  351. { value: '结束重量-最小值', label: '结束重量-最小值'},
  352. { value: '结束重量-标准差', label: '结束重量-标准差'},
  353. { value: '结束重量-变异系数', label: '结束重量-变异系数'},
  354. ]
  355. },
  356. { value: '计划时间',label: '计划时间'},
  357. { value: '开始时间',label: '开始时间'},
  358. { value: '结束时间',label: '结束时间'},
  359. { value: '过程时间',label: '过程时间'},
  360. ],
  361. //车次 - 数据5 - 牲畜大类 - 理论重量、实际重量、误差值、准确率(平均)
  362. //车次 - 数据5 - 牲畜小类 - 理论重量、实际重量、误差值、准确率(平均)
  363. //车次 - 数据5 - TMR - 理论重量、实际重量、误差值、准确率(平均)
  364. mixtureSpreadArr5: [
  365. {
  366. value: '理论重量',label: '理论重量',
  367. children: [
  368. { value: '理论重量-合计', label: '理论重量-合计'},
  369. { value: '理论重量-平均', label: '理论重量-平均'},
  370. { value: '理论重量-最大值', label: '理论重量-最大值'},
  371. { value: '理论重量-最小值', label: '理论重量-最小值'},
  372. { value: '理论重量-标准差', label: '理论重量-标准差'},
  373. { value: '理论重量-变异系数', label: '理论重量-变异系数'},
  374. ]
  375. },
  376. {
  377. value: '实际重量',label: '实际重量',
  378. children: [
  379. { value: '实际重量-合计', label: '实际重量-合计'},
  380. { value: '实际重量-平均', label: '实际重量-平均'},
  381. { value: '实际重量-最大值', label: '实际重量-最大值'},
  382. { value: '实际重量-最小值', label: '实际重量-最小值'},
  383. { value: '实际重量-标准差', label: '实际重量-标准差'},
  384. { value: '实际重量-变异系数', label: '实际重量-变异系数'},
  385. ]
  386. },
  387. {
  388. value: '误差值',label: '误差值',
  389. children: [
  390. { value: '误差值-合计', label: '误差值-合计'},
  391. { value: '误差值-平均', label: '误差值-平均'},
  392. { value: '误差值-最大值', label: '误差值-最大值'},
  393. { value: '误差值-最小值', label: '误差值-最小值'},
  394. { value: '误差值-标准差', label: '误差值-标准差'},
  395. { value: '误差值-变异系数', label: '误差值-变异系数'},
  396. ]
  397. },
  398. { value: '准确率-平均',label: '准确率-平均'}
  399. ],
  400. mixScreenArr:[],
  401. spreadScreenArr:[],
  402. screeningVisible:true,
  403. // 筛选条件
  404. screeningList: [
  405. // { id: '配方名称', name: '配方名称' },
  406. // { id: 'TMR名称', name: 'TMR名称' },
  407. // { id: '班次', name: '班次' },
  408. // { id: '车次计划', name: '车次计划' },
  409. ],
  410. // 筛选条件 - 参数
  411. screeningObj:{
  412. screeningCondition: '',
  413. screeningField: '',
  414. inputDatetime: '',
  415. startTime: '',
  416. stopTime: '',
  417. },
  418. // 筛选条件 - 参数
  419. screeningArr:[
  420. ],
  421. screeningFieldList1:[
  422. { id: '是', name: '是' },
  423. { id: '否', name: '否' }
  424. ],
  425. screeningFieldList2:[
  426. { id: '自动', name: '自动' },
  427. { id: '手动', name: '手动' }
  428. ],
  429. // 筛选条件 - 结果
  430. fieldTypeList: [
  431. { id: '配方A', name: '配方A' },
  432. { id: '配方B', name: '配方B' }
  433. ],
  434. tableObj: {
  435. getDataParameters: {
  436. name: 'getDriverList',
  437. page: 1,
  438. offset: 1,
  439. pagecount: parseInt(Cookies.get('pageCount')),
  440. returntype: 'Map',
  441. parammaps: {
  442. pastureid: Cookies.get('pastureid'),
  443. dateType:'',
  444. type: '',
  445. dimension: '',
  446. mixture: [],
  447. spread: [],
  448. }
  449. },
  450. tableKey: 0,
  451. list: [],
  452. total: 0,
  453. listLoading: false,
  454. temp: {}
  455. },
  456. chartData:{
  457. chartType:null,
  458. // xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  459. // legendArr: ['数据1', '数据2', '数据3', '数据4', '线条1'],
  460. // dataArr:[
  461. // [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  462. // [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  463. // [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  464. // [2, 10, 3, 2, 10, 4, 4, 9, 3, 9, 3, 8],
  465. // [2, 10, 3, 2, 10, 4, 4, 9, 3, 9, 3, 8]
  466. // ]
  467. },
  468. chartLine_data2:{
  469. chartType:'pie',
  470. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  471. legendArr: ['数据1', '数据2', '数据3', '数据4', '线条1'],
  472. dataArr:[1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  473. },
  474. chartLine_data3:{
  475. chartType:'line_bar',
  476. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  477. legendArr1: ['数据1', '数据2', '数据3', '数据4' ],
  478. dataArr1:[
  479. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  480. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  481. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  482. [2, 10, 3, 2, 10, 4, 4, 9, 3, 9, 3, 8],
  483. ],
  484. legendArr2: ['数据5', '线条1'],
  485. dataArr2:[
  486. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  487. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  488. ]
  489. },
  490. requestParam: {},
  491. isokDisable: false,
  492. selectList: [],
  493. rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
  494. cellStyle: { padding: 0 + 'px' }
  495. }
  496. },
  497. created() {
  498. // console.log(VUE_APP_BASE_pageCount)
  499. // console.log(this.VUE_APP_BASE_pageCount, 'this.VUE_APP_BASE_pageCount')
  500. // this.getList()
  501. // this.getButtons()
  502. },
  503. methods: {
  504. getButtons() {
  505. const Edit = 'Driver'
  506. const isRoleEdit = checkButtons(JSON.parse(sessionStorage.getItem('buttons')), Edit)
  507. this.isRoleEdit = isRoleEdit
  508. },
  509. getList() {
  510. this.tableObj.listLoading = true
  511. GetDataByName(this.tableObj.getDataParameters).then(response => {
  512. console.log('table数据', response.data.list)
  513. if (response.data.list !== null) {
  514. for (let i = 0; i < response.data.list.length; i++) {
  515. this.$set(response.data.list[i], 'Edit', false) // 编辑
  516. this.$set(response.data.list[i], 'NoEdit', true) // 不可编辑/输入
  517. this.$set(response.data.list[i], 'isCreate', false) // 新增操作
  518. this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
  519. this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
  520. }
  521. this.tableObj.list = response.data.list
  522. this.tableObj.pageNum = response.data.pageNum
  523. this.tableObj.pageSize = response.data.pageSize
  524. this.tableObj.total = response.data.total
  525. } else {
  526. this.tableObj.list = []
  527. }
  528. setTimeout(() => {
  529. this.tableObj.listLoading = false
  530. }, 100)
  531. })
  532. },
  533. form_search() {
  534. console.log('点击了查询 - 表单 tableObj', this.tableObj.getDataParameters.parammaps)
  535. // this.tableObj.getDataParameters.offset = 1
  536. // this.getList()
  537. console.log('点击了查询 - this.chartLine_data', this.chartLine_data)
  538. // this.roadChartLine(this.chartLine_data)
  539. },
  540. form_clear() {
  541. console.log('点击了重置')
  542. // this.tableObj.getDataParameters.parammaps.drivername = ''
  543. // this.tableObj.getDataParameters.parammaps.enable = ''
  544. // this.tableObj.getDataParameters.parammaps.drivercode = ''
  545. // this.tableObj.getDataParameters.offset = 1
  546. //this.getList()
  547. },
  548. //查询 - 汇总/分日
  549. change_date_type(value) {
  550. console.log('查询日期', value)
  551. },
  552. //维度
  553. change_dimension(value) {
  554. console.log('维度', value)
  555. this.tableObj.getDataParameters.parammaps.mixture = []
  556. this.tableObj.getDataParameters.parammaps.spread = []
  557. if(value == "栏舍"){
  558. this.mixtureList = this.mixtureSpreadArr1
  559. this.spreadList = this.mixtureSpreadArr1
  560. } else if(value == "配方"){
  561. this.mixtureList = this.mixtureSpreadArr2
  562. this.spreadList = this.mixtureSpreadArr2
  563. } else if(value == "班次"){
  564. this.mixtureList = this.mixtureSpreadArr3
  565. this.spreadList = this.mixtureSpreadArr3
  566. } else if(value == "车次"){
  567. this.mixtureList = this.mixtureSpreadArr4
  568. this.spreadList = this.mixtureSpreadArr4
  569. } else if(value == "牲畜大类" || value == "牲畜小类" || value == "TMR"){
  570. this.mixtureList = this.mixtureSpreadArr5
  571. this.spreadList = this.mixtureSpreadArr5
  572. }
  573. },
  574. //级联选择 - 混料数据
  575. change_cascader1(value) {
  576. console.log('级联选择 - 混料数据', value)
  577. var allNode = this.$refs['cascader1'].getCheckedNodes()
  578. console.log("级联选择 - 混料数据的Node", allNode)
  579. var mixScreenArr = []
  580. value.forEach(function(i){
  581. allNode.forEach(function(j){
  582. if(i == j.value){
  583. mixScreenArr.push({name: "混料-"+j.label, id:j.value})
  584. }
  585. })
  586. })
  587. // allNode.forEach(function(item){
  588. // if(item.children.length == 0){
  589. // mixScreenArr.push({name: "混料-"+item.label, id:item.value})
  590. // }
  591. // })
  592. var spreadScreenArr = this.spreadScreenArr
  593. this.mixScreenArr = mixScreenArr
  594. this.screeningList = mixScreenArr.concat(spreadScreenArr)
  595. },
  596. //级联选择 - 撒料数据
  597. change_cascader2(value) {
  598. console.log('级联选择 - 撒料数据', value)
  599. var allNode2 = this.$refs['cascader2'].getCheckedNodes()
  600. console.log("级联选择 - 撒料数据的Node", allNode2)
  601. var spreadScreenArr = []
  602. value.forEach(function(i){
  603. allNode2.forEach(function(j){
  604. if(i == j.value){
  605. spreadScreenArr.push({name: "撒料-"+j.label, id:j.value})
  606. }
  607. })
  608. })
  609. // allNode2.forEach(function(item){
  610. // if(item.children.length == 0){
  611. // spreadScreenArr.push({name: "撒料-"+item.label, id:item.value})
  612. // }
  613. // })
  614. var mixScreenArr = this.mixScreenArr
  615. this.spreadScreenArr = spreadScreenArr
  616. this.screeningList = mixScreenArr.concat(spreadScreenArr)
  617. },
  618. change_screening(value) {
  619. console.log('筛选', value)
  620. console.log('筛选数组', this.screeningList)
  621. },
  622. handleCreate() {
  623. // this.resetRequestParam()
  624. // this.dialogStatus = 'create'
  625. // this.parent = this.parentmenu
  626. // this.screeningVisible = true
  627. // this.$nextTick(() => {
  628. // this.$refs['dataForm'].clearValidate()
  629. // this.$refs.name.focus()
  630. // })
  631. },
  632. form_search_screening() {
  633. console.log('点击了筛选条件 - 确认 - screeningObj',this.screeningObj)
  634. var screeningCondition = this.screeningObj.screeningCondition
  635. var screeningField = this.screeningObj.screeningField
  636. var txt = { txt: screeningCondition + screeningField}
  637. console.log(txt)
  638. this.screeningArr.push(txt)
  639. },
  640. form_add_screening() {
  641. console.log('点击了查询')
  642. this.tableObj.getDataParameters.offset = 1
  643. this.getList()
  644. },
  645. form_clear_screening() {
  646. console.log('点击了查询')
  647. this.tableObj.getDataParameters.offset = 1
  648. this.getList()
  649. },
  650. form_cancel_screening() {
  651. console.log('点击了查询')
  652. this.tableObj.getDataParameters.offset = 1
  653. this.getList()
  654. },
  655. //切换图表类型
  656. switch_chart_type(item){
  657. console.log(item)
  658. console.log(this.chartTypeList)
  659. var chartTypeList = this.chartTypeList
  660. chartTypeList.forEach(function(i){
  661. i.isUse = false
  662. })
  663. chartTypeList[item.id].isUse = true
  664. this.chartType = item.type
  665. this.chartTypeList = chartTypeList
  666. if(item.type == 'line'){
  667. this.chartData = {
  668. chartType:'line',
  669. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  670. legendArr: ['数据1', '数据2', '数据3'],
  671. dataArr:[
  672. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  673. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  674. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  675. ]
  676. }
  677. } else if(item.type == 'bar'){
  678. this.chartData = {
  679. chartType:'bar',
  680. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  681. legendArr: ['数据1', '数据2', '数据3'],
  682. dataArr:[
  683. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  684. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  685. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  686. ]
  687. }
  688. } else if(item.type == 'horizontal_bar'){
  689. this.chartData = {
  690. chartType:'horizontal_bar',
  691. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  692. legendArr: ['数据1', '数据2', '数据3', '数据4'],
  693. dataArr:[
  694. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  695. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  696. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  697. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  698. ]
  699. }
  700. } else if (item.type == 'pie'){
  701. console.log("pie!=============")
  702. this.chartData = {
  703. chartType:'pie',
  704. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  705. legendArr: ['数据1', '数据2', '数据3', '数据4', '线条1'],
  706. dataArr:[1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  707. }
  708. } else if (item.type == 'line_bar'){
  709. console.log("pie!=============")
  710. this.chartData = {
  711. chartType:'line_bar',
  712. xAxisArr: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'],
  713. legendArr1: ['数据1', '数据2', '数据3', '数据4' ],
  714. dataArr1:[
  715. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  716. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  717. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  718. [2, 10, 3, 2, 10, 4, 4, 9, 3, 9, 3, 8],
  719. ],
  720. legendArr2: ['数据5', '线条1'],
  721. dataArr2:[
  722. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  723. [1, 10, 7, 0, 1, 7, 7, 6, 4, 4, 1, 6],
  724. ]
  725. }
  726. }
  727. }
  728. }
  729. }
  730. </script>
  731. <style lang="scss" scoped>
  732. .search{margin-top:10px;}
  733. </style>