index.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779
  1. <template>
  2. <view class="content-box">
  3. <view class="uni-list title-date-box">
  4. <view class="uni-list-cell">
  5. <view class="uni-list-cell-db display-flex-start">
  6. <picker mode="date" fields="year" @change="bindDateChange" class="picker-class">
  7. <view class="uni-input display-between items-center">{{dateYear}}年<image src="../../static/arrow_down.svg" mode="aspectFit"></image></view>
  8. </picker>
  9. <view style="font-size: 26rpx;margin-left: 20rpx;">1月~ </view>
  10. <picker :range="arrayMonth" :value="dateMonth" @change="bindDateMonthChange" class="picker-class">
  11. <view class="uni-input display-between items-center" style="color: #707070;">{{dateMonth}}月<image src="../../static/calendar_icon.svg" mode="aspectFit"></image></view>
  12. </picker>
  13. </view>
  14. </view>
  15. </view>
  16. <qiun-title-bar title="规上工业企业"/>
  17. <view class="block-box display-wrap items-center" style="justify-content: space-evenly;height: 340rpx;">
  18. <view class="block-box-content" style="background-color: #77AFCA;" @click="goScale('规上工业企业')">
  19. <view class="font-size30">规上工业企业</view>
  20. <view>{{standard_sized_count}}</view>
  21. </view>
  22. <view class="block-box-content" style="background-color: #A5C9D3;">
  23. <view class="font-size30">工业增加值增速</view>
  24. <view>同比增长{{standard_sized_increase_ratio}}%</view>
  25. </view>
  26. <view class="block-box-content" style="background-color: #8D7E95;" @click="goScale('先进制造业企业')">
  27. <view class="font-size30">先进制造业</view>
  28. <view>{{advanced_count}}</view>
  29. </view>
  30. <view class="block-box-content" style="background-color: #C1ABBC;">
  31. <view class="font-size30">先进制造业总产值</view>
  32. <view>同比增长{{advanced_increase_ratio}}%</view>
  33. </view>
  34. </view>
  35. <!-- <qiun-title-bar title="2021年规上工业任务目标"/> -->
  36. <view class="title-second">{{dateYear}}年规上工业任务目标</view>
  37. <view class="charts-box" style="position: relative;">
  38. <qiun-data-charts type="bar" background="#4C4C4C" :opts="{extra:{bar:{linearType:'custom',barBorderCircle:true}}}" :chartData="chartData"/>
  39. <view class="pos-font" style="top: 26%;">增速</view>
  40. <view class="pos-font" style="top: 64.5%;">总产值</view>
  41. </view>
  42. <!-- <qiun-title-bar title="先进制造业产值(亿元)"/> -->
  43. <view class="title-second">先进制造业产值(亿元)</view>
  44. <view class="charts-box">
  45. <qiun-data-charts type="column" :chartData="chartData1" background="#4C4C4C" :ontouch="true" :opts="{enableScroll: true,xAxis:{scrollShow: true,itemCount:5},yAxis:{splitNumber:3}}"/>
  46. </view>
  47. <!-- <qiun-title-bar title="工业产值"/> -->
  48. <view class="title-second">工业产值</view>
  49. <view class="charts-box">
  50. <qiun-data-charts type="demotype" :opts="{fontColor:'#666',xAxis:{boundaryGap:'justify'}}" :chartData="chartData2"/>
  51. </view>
  52. <qiun-title-bar title="工业投资" style="border-top:10rpx solid #f2f2f2" />
  53. <view class="block-box display-around items-center">
  54. <view class="block-box-content" style="width:30%;background-color:#F2CD4F;" @click="goProject(0)">
  55. <view class="font-size30">在库项目</view>
  56. <view>{{industryData.instore_project_count}}</view>
  57. </view>
  58. <view class="block-box-content" style="width:30%;background-color: #9776F2;" @click="goProject(1)">
  59. <view class="font-size30">技改项目</view>
  60. <view>{{industryData.industrial_investment_project_count}}</view>
  61. </view>
  62. <view class="block-box-content" style="width:30%;background-color: #51A9E3;" @click="goProject(2)">
  63. <view class="font-size30">在谈项目</view>
  64. <view>{{industryData.discuss_project_count}}</view>
  65. </view>
  66. </view>
  67. <!-- <qiun-title-bar title="2021年工业投资任务目标"/> -->
  68. <view class="title-second">{{dateYear}}年工业投资任务目标</view>
  69. <view class="charts-box">
  70. <qiun-data-charts type="bar" background="#4C4C4C" :opts="{extra:{bar:{linearType:'custom',barBorderCircle:true}}}" :chartData="industryData.chartData"/>
  71. </view>
  72. <!-- <qiun-title-bar title="工业投资额"/> -->
  73. <view class="title-second">工业投资额</view>
  74. <view class="charts-box">
  75. <qiun-data-charts type="demotype" :opts="{fontColor:'#666',xAxis:{boundaryGap:'justify'}}" :chartData="industryData.chartData2"/>
  76. </view>
  77. <qiun-title-bar title="重点项目" style="border-top:10rpx solid #f2f2f2" />
  78. <view class="block-box display-around items-center">
  79. <view class="block-box-content" style="width:30%;background-color:#F2CD4F;" @click="goImportant(0)">
  80. <view class="font-size30">重点项目</view>
  81. <view>{{importantData.importent_project_count}}</view>
  82. </view>
  83. <view class="block-box-content" style="width:30%;background-color: #9776F2;" @click="goImportant(0)">
  84. <view class="font-size30">新建/续建</view>
  85. <view>{{importantData.new_project_count}}/{{importantData.continue_project_count}}</view>
  86. </view>
  87. <view class="block-box-content" style="width:30%;background-color: #51A9E3;">
  88. <view class="font-size30">总投资(亿元)</view>
  89. <view>{{importantData.investment_count}}</view>
  90. </view>
  91. </view>
  92. <!-- <qiun-title-bar title="重点项目级别分布"/> -->
  93. <view class="title-second">重点项目级别分布</view>
  94. <view class="charts-box">
  95. <qiun-data-charts type="bar" background="#4C4C4C" :chartData="importantData.chartData" :opts="{xAxis:{labelCount:2},extra:{bar:{linearType:'custom',barBorderCircle:true}}}" />
  96. </view>
  97. <!-- <qiun-title-bar title="工业投资额"/> -->
  98. <view class="title-second">工业投资额</view>
  99. <view class="charts-box">
  100. <qiun-data-charts type="demotype" :opts="{fontColor:'#666',xAxis:{boundaryGap:'justify'}}" :chartData="importantData.chartData2"/>
  101. </view>
  102. <qiun-title-bar title="科技创新指标" style="border-top:10rpx solid #f2f2f2;margin-bottom: 10rpx;" />
  103. <view class="block-box display-around items-center">
  104. <view class="block-box-content" style="width:47%;color: #555;" @click="goScale('科技创新企业','high_tech')">
  105. <view class="font-size30">国家高新技术企业</view>
  106. <view>{{techData.target.high ||'-'}}/<text style="color: red;">{{techData.finish.high ||'-'}}</text></view>
  107. </view>
  108. <view class="block-box-content" style="width:47%;color: #555;" @click="goScale('科技创新企业','tech')">
  109. <view class="font-size30">科技型中小企业</view>
  110. <view>{{techData.target.mini ||'-'}}/<text style="color: red;">{{techData.finish.mini ||'-'}}</text></view>
  111. </view>
  112. </view>
  113. <view class="display-around-column items-center" style="height: 620rpx; margin: 10rpx 0 10rpx 0;">
  114. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','standard_industry')">
  115. <view class="font-size30">累计研发投入规上工业企业</view>
  116. <view>{{techData.target.standard_industry ||'-'}}/<text style="color: red;">{{techData.finish.standard_industry ||'-'}}</text></view>
  117. </view>
  118. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','standard_service')">
  119. <view class="font-size30">累计研发投入规上服务业企业</view>
  120. <view>{{techData.target.standard_service ||'-'}}/<text style="color: red;">{{techData.finish.standard_service ||'-'}}</text></view>
  121. </view>
  122. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','rd_five_percent' )">
  123. <view class="font-size30">累计研发投入占主营业务5%的企业</view>
  124. <view>{{techData.target.rd_five_percent ||'-'}}/<text style="color: red;">{{techData.finish.rd_five_percent ||'-'}}</text></view>
  125. </view>
  126. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','rd_five_million')">
  127. <view class="font-size30">累计研发投入500万以上的企业</view>
  128. <view>{{techData.target.rd_five_million ||'-'}}/<text style="color: red;">{{techData.finish.rd_five_million ||'-'}}</text></view>
  129. </view>
  130. </view>
  131. <qiun-title-bar title="各新城指标排序" style="border-top:10rpx solid #f2f2f2" />
  132. <view class="uni-list title-date-box" style="border: none;">
  133. <view class="uni-list-cell">
  134. <view class="uni-list-cell-db display-flex-start">
  135. <picker :range="arrayNewCity" :value="sortSelect" @change="bindDateCityChange" class="picker-class" style="width: 65%;">
  136. <view class="uni-input display-between items-center" style="color: #707070;">{{sortSelect}}<image src="../../static/arrow_down.svg" mode="aspectFit"></image></view>
  137. </picker>
  138. </view>
  139. </view>
  140. </view>
  141. <!-- <qiun-title-bar title="各新城规上工业企业数量"/> -->
  142. <view class="title-second">各新城{{sortSelect}}</view>
  143. <view class="charts-box">
  144. <qiun-data-charts type="column" :chartData="ereaData.chartDataBar" background="#4C4C4C"/>
  145. </view>
  146. <!-- <qiun-title-bar title="各新城规上工业企业数量占比"/> -->
  147. <view class="title-second">各新城{{sortSelect}}占比</view>
  148. <view class="charts-box" style="margin-bottom: 20rpx;">
  149. <qiun-data-charts type="pie" :chartData="ereaData.chartDataPie" :opts="{legend:{fontSize:10}}" background="#4C4C4C"/>
  150. </view>
  151. </view>
  152. </template>
  153. <script>
  154. import md5 from "@/common/md5.js";
  155. export default {
  156. data() {
  157. return{
  158. dateYear:new Date().getFullYear(),
  159. dateMonth:new Date().getMonth() + 1,
  160. arrayMonth:[],
  161. arrayNewCity:['规上工业企业数量','工业产值及增速','工业增加值增速','工业投资及增速','工业技改及增速'],
  162. sortSelect:'规上工业企业数量',
  163. standard_sized_count:'',
  164. standard_sized_increase_ratio:'',
  165. advanced_count:'',
  166. advanced_increase_ratio:'',
  167. chartData:{
  168. categories: [ "工业增加值","先进制造业" ],//增速,总产值
  169. series: [
  170. { name: "目标任务",
  171. otherData:[],
  172. data: [],
  173. format:'moreDataShow',
  174. textSize:10
  175. },
  176. { name: "目前已完成",
  177. otherData:[],
  178. data: [],
  179. format:'moreDataShow',
  180. textSize:10
  181. },
  182. ]
  183. },
  184. chartData1:{
  185. "categories": [],
  186. "series": [
  187. {
  188. "name": "先进制造业产值(亿元)",
  189. "data": [],
  190. }
  191. ]
  192. },
  193. chartData2:{
  194. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  195. "series": [
  196. {name: "本年度",data: [],textSize:1},
  197. {name: "上年度", data: [],textSize:1}
  198. ]
  199. },
  200. industryData:{
  201. discuss_project_count:'',
  202. industrial_investment_project_count:'',
  203. instore_project_count:'',
  204. chartData:{
  205. categories: ["在库项目", "技改项目"],
  206. series: [
  207. {
  208. name: "目标任务",
  209. data: [],
  210. otherData:[],
  211. format:'moreDataShow',
  212. textSize:10
  213. },
  214. {
  215. name: "目前已完成",
  216. data: [],
  217. otherData:[],
  218. format:'moreDataShow',
  219. textSize:10,
  220. },
  221. ]
  222. },
  223. chartData2:{
  224. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  225. "series": [
  226. {name: "本年度",data: [],textSize:1},
  227. {name: "上年度", data: [],textSize:1}
  228. ]
  229. }
  230. },
  231. importantData:{
  232. importent_project_count:'',
  233. new_project_count:'',
  234. continue_project_count:'',
  235. investment_count:'',
  236. chartData:{
  237. categories: ["市级", "新区级","新城级"],
  238. series: [
  239. {
  240. name: "数量",
  241. data: [],
  242. },
  243. ]
  244. },
  245. chartData2:{
  246. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  247. "series": [
  248. {name: "本年度",data: [],textSize:1},
  249. {name: "上年度", data: [],textSize:1}
  250. ]
  251. }
  252. },
  253. techData:{
  254. target:{},
  255. finish:{}
  256. },
  257. ereaData:{
  258. chartDataBar:{
  259. "categories": [],
  260. "series": [
  261. {
  262. "name":'',
  263. "data": [],
  264. }
  265. ]
  266. },
  267. chartDataPie:{
  268. "categories": [],
  269. "series": [
  270. {
  271. "data": [
  272. // {
  273. // "name": "空港",
  274. // "value": 50
  275. // },
  276. // {
  277. // "name": "沣东",
  278. // "value": 30
  279. // },
  280. // {
  281. // "name": "秦汉",
  282. // "value": 20
  283. // },
  284. // {
  285. // "name": "泾河",
  286. // "value": 18
  287. // },
  288. // {
  289. // "name": "沣西",
  290. // "value": 8
  291. // }
  292. ]
  293. }
  294. ]
  295. },
  296. }
  297. }
  298. },
  299. onLoad() {
  300. this.makeMonthArr(this.dateYear)
  301. this.topChartFn(this.dateYear,this.dateMonth)
  302. },
  303. methods:{
  304. topChartFn(year,month){
  305. this.getStandardChart(year,month);
  306. this.getAdvancedCompanyChart(year,month);
  307. this.getIndustryChart(year,month);
  308. this.getImportantChart(year,month);
  309. this.getTechInfo(year,month);
  310. this.getEreaInfos(year,month,1);
  311. },
  312. makeMonthArr(y){
  313. this.arrayMonth = [];
  314. if(y == new Date().getFullYear()){
  315. let length = new Date().getMonth() + 1;
  316. for(let i = 1 ; i <= length; i++){
  317. this.arrayMonth.push(i)
  318. }
  319. this.dateMonth = length;
  320. }else {
  321. this.arrayMonth = ["1", "2","3", "4","5", "6","7", "8","9", "10","11", "12"]
  322. }
  323. this.topChartFn(this.dateYear,this.dateMonth)
  324. },
  325. getStandardChart(y,m){
  326. let md5Sign = md5(
  327. "method=" +
  328. "stat" +
  329. "&timestamp=" +
  330. getApp().globalData.globalTimestamp +
  331. "&secret=" +
  332. getApp().globalData.secret
  333. );
  334. let url =
  335. getApp().globalData.shareUrl +
  336. "api/api.php" +
  337. "?method=stat&action=standard_target&timestamp=" +
  338. getApp().globalData.globalTimestamp +
  339. "&sign=" +
  340. md5Sign;
  341. uni.request({
  342. url: url,
  343. method: "POST",
  344. header: {
  345. "content-type": "application/x-www-form-urlencoded",
  346. },
  347. data: {
  348. year:y,
  349. month:m,
  350. },
  351. success: (res) => {
  352. if (res.data.code === 200) {
  353. let targetData = [],targetData1 = [],finishData = [],finishData1 = [],targetRatio1 = '',targetRatio2 = '';
  354. this.standard_sized_count = res.data.data.standard_sized_count || '-';
  355. this.standard_sized_increase_ratio = res.data.data.standard_sized_increase_ratio || '-';
  356. this.advanced_count = res.data.data.advanced_count || '-';
  357. this.advanced_increase_ratio = res.data.data.advanced_increase_ratio || '-';
  358. if(res.data.data.target.length){
  359. res.data.data.target.forEach((item,index)=>{
  360. if(item.source === '2'){
  361. targetRatio2 = Number(item.increase_ratio) || 0
  362. }
  363. if(item.source === '1'){
  364. targetRatio1 = Number(item.increase_ratio) || 0
  365. }
  366. if(item.source !== '0'){
  367. targetData.push(Number(item.increase_balance))
  368. targetData1.push(Number(item.increase_ratio))
  369. }
  370. })
  371. }
  372. if(res.data.data.finish.length){
  373. res.data.data.finish.forEach((item,index)=>{
  374. if(item.source === '2'){
  375. let dataObj = {
  376. value:Number(item.increase_ratio),
  377. color:Number(item.increase_ratio) > targetRatio2 ? '#68d889' : '#cc0000'
  378. }
  379. finishData.push(Number(item.increase_balance))
  380. finishData1.push(dataObj)
  381. }
  382. if(item.source === '1'){
  383. let dataObj = {
  384. value:Number(item.increase_ratio),
  385. color:Number(item.increase_ratio) > targetRatio1 ? '#68d889' : '#cc0000'
  386. }
  387. finishData.push(Number(item.increase_balance))
  388. finishData1.push(dataObj)
  389. }
  390. })
  391. }
  392. this.chartData.series[0].data = targetData1.reverse()
  393. this.chartData.series[0].otherData = targetData.reverse()
  394. this.chartData.series[1].data = finishData1.reverse()
  395. this.chartData.series[1].otherData = finishData.reverse()
  396. }
  397. },
  398. fail: () => {
  399. console.log("连接失败");
  400. },
  401. });
  402. },
  403. getAdvancedCompanyChart(y,m){
  404. let md5Sign = md5(
  405. "method=" +
  406. "stat" +
  407. "&timestamp=" +
  408. getApp().globalData.globalTimestamp +
  409. "&secret=" +
  410. getApp().globalData.secret
  411. );
  412. let url =
  413. getApp().globalData.shareUrl +
  414. "api/api.php" +
  415. "?method=stat&action=advanced_company&timestamp=" +
  416. getApp().globalData.globalTimestamp +
  417. "&sign=" +
  418. md5Sign;
  419. uni.request({
  420. url: url,
  421. method: "POST",
  422. header: {
  423. "content-type": "application/x-www-form-urlencoded",
  424. },
  425. data: {
  426. year:y,
  427. month:m,
  428. },
  429. success: (res) => {
  430. if (res.data.code === 200) {
  431. let categoriesList = [],balanceList = [],lineBalanceList = [], lineLast = [];
  432. res.data.data.company_list.forEach((item)=>{
  433. categoriesList.push(item.short_name);
  434. balanceList.push(item.balance)
  435. })
  436. balanceList = balanceList.map((item)=>{ return (Number(item)/10000).toFixed(2)});
  437. // res.data.data.month_list.forEach((item)=>{
  438. // lineBalanceList.push(item.balance);
  439. // lineLast.push(item.last_balance)
  440. // })
  441. for(let key in res.data.data.month_list ){
  442. lineBalanceList.push(res.data.data.month_list[key].balance)
  443. lineLast.push(res.data.data.month_list[key].last_balance)
  444. }
  445. this.chartData1.categories = categoriesList;
  446. this.chartData1.series[0].data = balanceList;
  447. this.chartData2.series[0].data = lineBalanceList;
  448. this.chartData2.series[1].data = lineLast;
  449. }
  450. },
  451. fail: () => {
  452. console.log("连接失败");
  453. },
  454. });
  455. },
  456. industryFilter(data){
  457. let targetData = [],targetData1 = [],finishData = [],finishData1 = [],lineBalanceList = [], lineLast = [],storeRatio = '',techRatio = '';
  458. this.industryData.discuss_project_count = data.discuss_project_count || '-';
  459. this.industryData.industrial_investment_project_count = data.industrial_investment_project_count || '-';
  460. this.industryData.instore_project_count = data.instore_project_count || '-';
  461. if(data.target.length){
  462. let targetList = data.target;
  463. targetList.forEach((item)=>{
  464. if(item.source === '3'){
  465. storeRatio = Number(item.increase_ratio) || 0
  466. }
  467. if(item.source === '4'){
  468. techRatio = Number(item.increase_ratio) || 0
  469. }
  470. if(item.source !== '0'){
  471. targetData.push(Number(item.increase_balance))
  472. targetData1.push(Number(item.increase_ratio))
  473. }
  474. })
  475. }
  476. if(data.finish.length){
  477. let finishList = data.finish;
  478. let dataStoreObj = {
  479. value:Number(finishList[0].store_ratio),
  480. color:Number(finishList[0].store_ratio) > storeRatio ? '#68d889' : '#cc0000'
  481. }
  482. finishData1.push(dataStoreObj)
  483. let dataTechObj = {
  484. value:Number(finishList[0].tech_ratio),
  485. color:Number(finishList[0].tech_ratio) > techRatio ? '#68d889' : '#cc0000'
  486. }
  487. finishData1.push(dataTechObj)
  488. finishData = [Number(finishList[0].store_balance),Number(finishList[0].tech_balance)];
  489. }
  490. for(let key in data.month_list ){
  491. lineBalanceList.push(data.month_list[key].balance)
  492. lineLast.push(data.month_list[key].last_balance)
  493. }
  494. this.industryData.chartData.series[0].data = targetData1
  495. this.industryData.chartData.series[0].otherData = targetData
  496. this.industryData.chartData.series[1].data = finishData1
  497. this.industryData.chartData.series[1].otherData = finishData
  498. this.industryData.chartData2.series[0].data = lineBalanceList;
  499. this.industryData.chartData2.series[1].data = lineLast;
  500. },
  501. getIndustryChart(y,m){
  502. let md5Sign = md5(
  503. "method=" +
  504. "stat" +
  505. "&timestamp=" +
  506. getApp().globalData.globalTimestamp +
  507. "&secret=" +
  508. getApp().globalData.secret
  509. );
  510. let url =
  511. getApp().globalData.shareUrl +
  512. "api/api.php" +
  513. "?method=stat&action=industry&timestamp=" +
  514. getApp().globalData.globalTimestamp +
  515. "&sign=" +
  516. md5Sign;
  517. uni.request({
  518. url: url,
  519. method: "POST",
  520. header: {
  521. "content-type": "application/x-www-form-urlencoded",
  522. },
  523. data: {
  524. year:y,
  525. month:m,
  526. },
  527. success: (res) => {
  528. if (res.data.code === 200) {
  529. this.industryFilter(res.data.data)
  530. }
  531. },
  532. fail: () => {
  533. console.log("连接失败");
  534. },
  535. });
  536. },
  537. importantFilter(data){
  538. let lineBalanceList = [], lineLast = [];
  539. this.importantData.importent_project_count = data.importent_project_count || '-';
  540. this.importantData.new_project_count = data.new_project_count|| '-';
  541. this.importantData.continue_project_count = data.continue_project_count|| '-';
  542. this.importantData.investment_count = data.investment_count ? (data.investment_count/10000).toFixed(2):0
  543. this.importantData.chartData.series[0].data = [data.city_level_count,data.area_level_count,data.new_city_level_count]
  544. //this.importantData.chartData.series[0].data = [5,16,21]
  545. for(let key in data.month_list ){
  546. lineBalanceList.push(data.month_list[key].balance)
  547. lineLast.push(data.month_list[key].last_balance)
  548. }
  549. this.importantData.chartData2.series[0].data = lineBalanceList;
  550. this.importantData.chartData2.series[1].data = lineLast;
  551. },
  552. getImportantChart(y,m){
  553. let md5Sign = md5(
  554. "method=" +
  555. "stat" +
  556. "&timestamp=" +
  557. getApp().globalData.globalTimestamp +
  558. "&secret=" +
  559. getApp().globalData.secret
  560. );
  561. let url =
  562. getApp().globalData.shareUrl +
  563. "api/api.php" +
  564. "?method=stat&action=importent_project&timestamp=" +
  565. getApp().globalData.globalTimestamp +
  566. "&sign=" +
  567. md5Sign;
  568. uni.request({
  569. url: url,
  570. method: "POST",
  571. header: {
  572. "content-type": "application/x-www-form-urlencoded",
  573. },
  574. data: {
  575. year:y,
  576. month:m,
  577. },
  578. success: (res) => {
  579. if (res.data.code === 200) {
  580. this.importantFilter(res.data.data)
  581. }
  582. },
  583. fail: () => {
  584. console.log("连接失败");
  585. },
  586. });
  587. },
  588. getTechInfo(y,m){
  589. let md5Sign = md5(
  590. "method=" +
  591. "stat" +
  592. "&timestamp=" +
  593. getApp().globalData.globalTimestamp +
  594. "&secret=" +
  595. getApp().globalData.secret
  596. );
  597. let url =
  598. getApp().globalData.shareUrl +
  599. "api/api.php" +
  600. "?method=stat&action=tech_infos&timestamp=" +
  601. getApp().globalData.globalTimestamp +
  602. "&sign=" +
  603. md5Sign;
  604. uni.request({
  605. url: url,
  606. method: "POST",
  607. header: {
  608. "content-type": "application/x-www-form-urlencoded",
  609. },
  610. data: {
  611. year:y,
  612. month:m,
  613. },
  614. success: (res) => {
  615. if (res.data.code === 200) {
  616. this.techData.target = res.data.data.target;
  617. this.techData.finish = res.data.data.finish;
  618. }
  619. },
  620. fail: () => {
  621. console.log("连接失败");
  622. },
  623. });
  624. },
  625. ereaInfoFilter(data){
  626. let categoriesList = [], barData = [], pieData = [];
  627. for(let key in data.area_list ){
  628. categoriesList.push(data.area_list[key].name);
  629. barData.push(data.area_list[key].value)
  630. pieData.push(data.area_list[key])
  631. }
  632. this.ereaData.chartDataBar.categories = categoriesList;
  633. this.ereaData.chartDataPie.categories = categoriesList;
  634. this.ereaData.chartDataBar.series[0].name = "各新城" + this.sortSelect;
  635. this.ereaData.chartDataBar.series[0].data = barData;
  636. pieData.forEach((item)=>{item.value = Number(item.value)})
  637. this.ereaData.chartDataPie.series[0].data =pieData.filter((item)=>{return item.name !== '西咸新区'});
  638. },
  639. getEreaInfos(y,m,select){
  640. let md5Sign = md5(
  641. "method=" +
  642. "stat" +
  643. "&timestamp=" +
  644. getApp().globalData.globalTimestamp +
  645. "&secret=" +
  646. getApp().globalData.secret
  647. );
  648. let url =
  649. getApp().globalData.shareUrl +
  650. "api/api.php" +
  651. "?method=stat&action=erea_infos&timestamp=" +
  652. getApp().globalData.globalTimestamp +
  653. "&sign=" +
  654. md5Sign;
  655. uni.request({
  656. url: url,
  657. method: "POST",
  658. header: {
  659. "content-type": "application/x-www-form-urlencoded",
  660. },
  661. data: {
  662. year:y,
  663. month:m,
  664. source:select
  665. },
  666. success: (res) => {
  667. if (res.data.code === 200) {
  668. this.ereaInfoFilter(res.data.data)
  669. }
  670. },
  671. fail: () => {
  672. console.log("连接失败");
  673. },
  674. });
  675. },
  676. bindDateChange(e){
  677. this.dateYear = e.target.value
  678. this.makeMonthArr(e.target.value);
  679. },
  680. bindDateMonthChange(e){
  681. this.dateMonth = this.arrayMonth[e.target.value]
  682. this.topChartFn(this.dateYear,this.dateMonth)
  683. },
  684. bindDateCityChange(e){
  685. this.sortSelect = this.arrayNewCity[e.target.value]
  686. let dataSelect = Number(e.target.value) + 1;
  687. this.getEreaInfos(this.dateYear,this.dateMonth,dataSelect)
  688. },
  689. goScale(title,techType){
  690. uni.navigateTo({
  691. url:'./largeScale/index?title=' + title + '&year=' + this.dateYear + '&month=' + this.dateMonth + '&tech=' + techType
  692. })
  693. },
  694. goProject(idx){
  695. uni.navigateTo({
  696. url:'./projectPage/index?idx=' + idx + '&year=' + this.dateYear + '&month=' + this.dateMonth
  697. })
  698. },
  699. goImportant(idx){
  700. uni.navigateTo({
  701. url:'./importantPage/index?idx=' + idx
  702. })
  703. }
  704. }
  705. };
  706. </script>
  707. <style>
  708. .content-box {
  709. display: flex;
  710. flex-direction: column;
  711. flex: 1;
  712. }
  713. .title-date-box {
  714. margin-top: 10px;
  715. border-bottom: 1px solid #d7d7d7;
  716. padding-bottom: 10px;
  717. }
  718. .charts-box-title{
  719. width: 100%;
  720. height: 100rpx;
  721. }
  722. .charts-box {
  723. width: 100%;
  724. height: 600rpx;
  725. }
  726. .picker-class {
  727. border-radius: 10rpx;
  728. padding: 10rpx;
  729. width: 180rpx;
  730. font-size: 28rpx;
  731. background: #f5f5f5;
  732. margin-left: 20rpx;
  733. }
  734. .picker-class image {
  735. width: 26rpx;
  736. height: 26rpx;
  737. }
  738. .block-box-content {
  739. display: flex;
  740. flex-direction: column;
  741. justify-content: center;
  742. align-items: center;
  743. font-size: 34rpx;
  744. border-radius: 10rpx;
  745. width: 45%;
  746. height: 140rpx;
  747. color: #fff;
  748. background-color:#F2F2F2;
  749. }
  750. .title-second {
  751. width: 100%;
  752. height: 60rpx;
  753. line-height: 60rpx;
  754. text-align: center;
  755. font-size: 30rpx;
  756. /* font-weight: 550; */
  757. }
  758. .pos-font {
  759. position: absolute;
  760. color: rgba(255, 255, 255, 0.8);
  761. font-size: 20rpx;
  762. text-align: center;
  763. width: 110rpx;
  764. font-weight: 600;
  765. }
  766. .font-size30 {
  767. font-size: 30rpx;
  768. }
  769. </style>