contractprofits.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. //合同利润
  2. <template>
  3. <div class="container">
  4. <!-- <el-row class="row_top">
  5. <el-col :span="12">
  6. <h2 class="bg-left title">盈收概览</h2>
  7. </el-col>
  8. <el-col :span="12" class="bg-right"></el-col>
  9. </el-row> -->
  10. <div class="center">
  11. <el-row class='row_top'>
  12. <el-col :span="12">
  13. <div class="datascreen">
  14. <el-date-picker v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
  15. start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
  16. </el-date-picker>
  17. </div>
  18. </el-col>
  19. <el-col :span="12" class="bg-right"><el-button type='primary' @click='detail'>利润详情</el-button></el-col>
  20. </el-row>
  21. <div class="chart_css">
  22. <div class="table">
  23. <div ref="myEchart7" style="height: 410px;"></div>
  24. </div>
  25. <div class="makeWord_css">
  26. <!-- <div ref="myEchart6" style="height: 410px"></div> -->
  27. </div>
  28. </div>
  29. <div class="table_css">
  30. <div style='margin:0 auto;' ><div class='title' style='margin-bottom:10px;'>合同利润汇总表</div>
  31. <div class='time' style=''>{{value[0]}}-{{value[1]}}</div></div>
  32. <ws-form>
  33. <ws-info-table>
  34. <ws-form-item label="采购重量(吨)" span="1" prop="contractNo" class="readonly">
  35. </ws-form-item>
  36. <ws-form-item label="销售重量(吨)" span="1" prop="settlementMethod">
  37. </ws-form-item>
  38. <ws-form-item label="支付粮款(万元)" span="1" prop="contractNo" class="readonly">
  39. </ws-form-item>
  40. <ws-form-item label="收入粮款(万元)" span="1" prop="settlementMethod">
  41. </ws-form-item>
  42. <ws-form-item label="其他支付(万元)" span="1" prop="contractNo" class="readonly">
  43. </ws-form-item>
  44. <ws-form-item label="其他收入(万元)" span="1" prop="settlementMethod">
  45. </ws-form-item>
  46. <ws-form-item label="运费(万元)" span="1" prop="contractNo" class="readonly">
  47. </ws-form-item>
  48. <ws-form-item label="总利润(万元)" span="1" prop="settlementMethod">
  49. </ws-form-item>
  50. </ws-info-table>
  51. </ws-form>
  52. <!-- <el-table :data="valueData" style="width: 100%">
  53. <el-table-column prop="date" label="货名/货值" min-width="110">
  54. <div slot-scope="scope">
  55. <span v-if="scope.$index == 0">期初货值(元)</span>
  56. <span v-if="scope.$index == 1">期末货值(元)</span>
  57. </div>
  58. </el-table-column>
  59. <el-table-column prop="date" label="玉米"></el-table-column>
  60. <el-table-column prop="date" label="玉米"></el-table-column>
  61. <el-table-column prop="date" label="玉米"></el-table-column>
  62. <el-table-column prop="date" label="货名"></el-table-column>
  63. <el-table-column prop="date" label="货名"></el-table-column>
  64. <el-table-column prop="date" label="货名"></el-table-column>
  65. <el-table-column prop="date" label="货名"></el-table-column>
  66. <el-table-column prop="date" label="货名"></el-table-column>
  67. <el-table-column prop="date" label="货名"></el-table-column>
  68. <el-table-column prop="date" label="合计" min-width="130">
  69. <div slot-scope="scope">
  70. <span v-if="scope.$index == 0">合计:</span>
  71. <span v-if="scope.$index == 1">合计:1000000000</span>
  72. </div>
  73. </el-table-column>
  74. </el-table> -->
  75. </div>
  76. </div>
  77. </div>
  78. </template>
  79. <script>
  80. import {} from '@/model/profitable/index'
  81. export default {
  82. components: {},
  83. data() {
  84. return {
  85. value: [],
  86. profitList: [{
  87. name: "玉米",
  88. count: 2000,
  89. }],
  90. deptBudgetList:{},
  91. makeWordData: {},
  92. valueData: [{
  93. date: 10
  94. },
  95. {
  96. date: 20
  97. }
  98. ], //货值
  99. }
  100. },
  101. activated() {
  102. this.makeWordData = this.getData(2)
  103. this.initCharts()
  104. this.getPassYearFormatDate()
  105. this.getList()
  106. },
  107. methods: {
  108. getList() {
  109. // getceshi({
  110. // driverId:'8f1f3c624d7946d79a9d44a4057d969b'
  111. // })
  112. // .toPromise()
  113. // .then((response) => {
  114. // debugger
  115. // console.log(response)
  116. // })
  117. },
  118. detail(){
  119. this.$router.push({name:'contractprofitsdetails'})
  120. },
  121. getPassYearFormatDate() {
  122. var nowDate = new Date()
  123. var _date = new Date()
  124. var year = nowDate.getFullYear()-1
  125. var year1 = _date.getFullYear()
  126. var month = nowDate.getMonth() + 1
  127. var month1 = _date.getMonth() + 1
  128. var strDate = nowDate.getDate()
  129. var strDate1 = _date.getDate()
  130. if (month >= 1 && month <= 9) {
  131. month = '0' + month
  132. }
  133. if (month1 >= 1 && month1 <= 9) {
  134. month1 = '0' + month1
  135. }
  136. if (strDate >= 0 && strDate <= 9) {
  137. strDate = '0' + strDate
  138. }
  139. if (strDate1 >= 0 && strDate1 <= 9) {
  140. strDate1 = '0' + strDate1
  141. }
  142. this.startDate = year + '-' + month + '-' + strDate
  143. this.endDate = year1 + '-' + month1 + '-' + strDate1
  144. this.value = [this.startDate, this.endDate]
  145. },
  146. pickerOptions() {
  147. },
  148. initCharts() {
  149. let app = this;
  150. let myChart7 = app.$echarts.init(this.$refs.myEchart7);
  151. var option;
  152. option = {
  153. // title: {
  154. // text: 'Rainfall vs Evaporation',
  155. // subtext: 'Fake Data'
  156. // },
  157. tooltip: {
  158. trigger: 'axis'
  159. },
  160. legend: {
  161. data: ['支出', '收入']
  162. },
  163. toolbox: {
  164. show: true,
  165. feature: {
  166. dataView: {
  167. show: false,
  168. readOnly: false
  169. },
  170. magicType: {
  171. show: false,
  172. type: ['line', 'bar']
  173. },
  174. restore: {
  175. show: false
  176. },
  177. saveAsImage: {
  178. show: false
  179. }
  180. }
  181. },
  182. calculable: true,
  183. xAxis: [{
  184. name: '种类',
  185. type: 'category',
  186. // prettier-ignore
  187. data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
  188. }],
  189. yAxis: [{
  190. name: '利润(万元)',
  191. type: 'value'
  192. }],
  193. series: [{
  194. name: '支出',
  195. type: 'bar',
  196. right: 0,
  197. // label: {
  198. // show: true,
  199. // position: 'inside'
  200. // },
  201. label: {
  202. show: true,
  203. precision: 1,
  204. position: 'top',
  205. valueAnimation: true,
  206. fontFamily: 'monospace'
  207. },
  208. data: [
  209. 6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
  210. ],
  211. color: ['#5878E8 '],
  212. formatter: '{value} 元',
  213. },
  214. {
  215. name: '收入',
  216. type: 'bar',
  217. right: 20,
  218. label: {
  219. show: true,
  220. precision: 1,
  221. position: 'top',
  222. valueAnimation: true,
  223. fontFamily: 'monospace'
  224. },
  225. data: [
  226. 102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
  227. ],
  228. color: ['#FF9F24'],
  229. formatter: '{value} 元',
  230. }
  231. ]
  232. },
  233. myChart7.setOption(option)
  234. },
  235. getData(count) {
  236. // prettier-ignore
  237. const nameList = [
  238. '支出', '收入'
  239. ];
  240. const legendData = [];
  241. const seriesData = [];
  242. for (var i = 0; i < count; i++) {
  243. var name = nameList[i]
  244. // Math.random() > 0.65 ? makeWord(4, 1) + '·' + makeWord(3, 0) : makeWord(2, 1);
  245. legendData.push(name);
  246. seriesData.push({
  247. name: name,
  248. value: Math.round(Math.random() * 100000)
  249. });
  250. }
  251. return {
  252. legendData: legendData,
  253. seriesData: seriesData
  254. };
  255. // function makeWord(max, min) {
  256. // debugger
  257. // const nameLen = Math.ceil(Math.random() * max + min);
  258. // const name = [];
  259. // for (var i = 0; i < nameLen; i++) {
  260. // name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
  261. // }
  262. // return name.join('');
  263. // }
  264. }
  265. },
  266. }
  267. </script>
  268. <style lang="scss" scoped>
  269. /deep/.ws-info-table{
  270. border-left: 1px solid #D8DCE6;
  271. border-top: 1px solid #D8DCE6;
  272. .el-form-item {
  273. border-right: 1px solid #D8DCE6;
  274. border-bottom: 1px solid #D8DCE6;
  275. }
  276. }
  277. /deep/.ws-info-table .el-form-item .el-form-item__label {
  278. background-color: #F6F7FB;
  279. }
  280. .container {
  281. background: #E8ECF6;
  282. }
  283. .center {
  284. margin: 0 auto;
  285. background: #ffffff;
  286. height: calc(100vh - 13vh);
  287. border-radius: 4px;
  288. margin-top: 10px;
  289. overflow:scroll;
  290. }
  291. .row_top {
  292. // background: #F6F7FC;
  293. border-radius: 4px;
  294. .bg-left {
  295. padding-left: 30px;
  296. }
  297. .bg-right {
  298. padding-right: 10px;
  299. text-align: right;
  300. height:60px;
  301. padding-top:15px;
  302. }
  303. }
  304. .datascreen {
  305. // margin-top: 10px;
  306. width: 500px;
  307. height: 60px;
  308. line-height: 60px;
  309. margin-left: 30px;
  310. }
  311. .chart_css {
  312. display: flex;
  313. height: 410px;
  314. .table {
  315. width: 70%;
  316. height: 410px;
  317. }
  318. .makeWord_css {
  319. width: 30%;
  320. height: 410px;
  321. margin-left: 30px;
  322. }
  323. }
  324. .table_css {
  325. text-align:center;
  326. margin-bottom:30px;
  327. }
  328. .flex-between{
  329. justify-content: space-between;
  330. }
  331. /deep/.el-form{
  332. width:90%;
  333. margin:0 auto;
  334. }
  335. /deep/.el-form-item {
  336. width: 50%;
  337. }
  338. .title{
  339. background:#F6F7FC;
  340. padding:20px 10px;
  341. text-align:left;
  342. position:relative;
  343. font-size:18px;
  344. }
  345. .title::before{
  346. content:'';
  347. display:block;
  348. background:#5473E8;
  349. width:5px;height:30px;
  350. position:absolute;
  351. left:0;
  352. top:50%;
  353. transform: translateY(-50%);
  354. }
  355. .time{
  356. text-align:right;
  357. width:90%;
  358. margin:10px auto;
  359. color:#8890B1;
  360. }
  361. </style>