index.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  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-around;height: 320rpx;">
  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:46%;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:46%;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: 640rpx; margin: 10rpx 0 10rpx 0;">
  114. <view class="block-box-content" style="width:96%;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:96%;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:96%;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:96%;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="mix" :chartData="ereaData.chartDataBar"
  145. :opts="{yAxis:{showTitle:false,padding:5,data:[{position:'left',textAlign:'left',fontSize:10},{position:'right',textAlign:'right',min: -60,max: 30,fontSize:10,format:'lineRaitoY'},{position:'right',disabled:true}]}}"
  146. background="#4C4C4C"/>
  147. </view>
  148. <!-- <qiun-title-bar title="各新城规上工业企业数量占比"/> -->
  149. <view class="title-second">各新城{{sortSelect}}占比</view>
  150. <view class="charts-box" style="margin-bottom: 20rpx;">
  151. <qiun-data-charts type="pie" :chartData="ereaData.chartDataPie" :opts="{legend:{fontSize:13}}" background="#4C4C4C"/>
  152. </view>
  153. </view>
  154. </template>
  155. <script>
  156. import md5 from "@/common/md5.js";
  157. export default {
  158. data() {
  159. return{
  160. dateYear:new Date().getFullYear(),
  161. dateMonth:new Date().getMonth() + 1,
  162. arrayMonth:[],
  163. arrayNewCity:['规上工业企业数量','工业产值及增速','工业增加值增速','工业投资及增速','工业技改及增速'],
  164. sortSelect:'规上工业企业数量',
  165. standard_sized_count:'',
  166. standard_sized_increase_ratio:'',
  167. advanced_count:'',
  168. advanced_increase_ratio:'',
  169. chartData:{
  170. categories: [ "工业增加值","先进制造业" ],//增速,总产值
  171. series: [
  172. { name: "目标任务",
  173. otherData:[],
  174. data: [],
  175. format:'moreDataShow',
  176. textSize:10
  177. },
  178. { name: "目前已完成",
  179. otherData:[],
  180. data: [],
  181. format:'moreDataShow',
  182. textSize:10
  183. },
  184. ]
  185. },
  186. chartData1:{
  187. "categories": [],
  188. "series": [
  189. {
  190. "name": "先进制造业产值(亿元)",
  191. "data": [],
  192. }
  193. ]
  194. },
  195. chartData2:{
  196. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  197. "series": [
  198. {name: "本年度",data: [],textSize:1},
  199. {name: "上年度", data: [],textSize:1}
  200. ]
  201. },
  202. industryData:{
  203. discuss_project_count:'',
  204. industrial_investment_project_count:'',
  205. instore_project_count:'',
  206. chartData:{
  207. categories: ["在库项目", "技改项目"],
  208. series: [
  209. {
  210. name: "目标任务",
  211. data: [],
  212. otherData:[],
  213. format:'moreDataShow',
  214. textSize:10
  215. },
  216. {
  217. name: "目前已完成",
  218. data: [],
  219. otherData:[],
  220. format:'moreDataShow',
  221. textSize:10,
  222. },
  223. ]
  224. },
  225. chartData2:{
  226. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  227. "series": [
  228. {name: "本年度",data: [],textSize:1},
  229. {name: "上年度", data: [],textSize:1}
  230. ]
  231. }
  232. },
  233. importantData:{
  234. importent_project_count:'',
  235. new_project_count:'',
  236. continue_project_count:'',
  237. investment_count:'',
  238. chartData:{
  239. categories: ["省级","市级", "新区级","新城级"],
  240. series: [
  241. {
  242. name: "数量",
  243. data: [],
  244. },
  245. ]
  246. },
  247. chartData2:{
  248. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  249. "series": [
  250. {name: "本年度",data: [],textSize:1},
  251. {name: "上年度", data: [],textSize:1}
  252. ]
  253. }
  254. },
  255. techData:{
  256. target:{},
  257. finish:{}
  258. },
  259. ereaData:{
  260. chartDataBar:{
  261. "categories": [],
  262. "series": [
  263. {
  264. "name":"",
  265. "index": 0,
  266. "data": [],
  267. "type": "column"
  268. },
  269. {
  270. "name": "折线",
  271. "index": 1,
  272. "data": [],
  273. "type": "line",
  274. "color":"#cc0000",
  275. "textSize":10,
  276. "format":'lineRaito'
  277. },
  278. ]
  279. },
  280. chartDataPie:{
  281. "categories": [],
  282. "series": [
  283. {
  284. "data": [
  285. // {
  286. // "name": "空港",
  287. // "value": 50
  288. // },
  289. // {
  290. // "name": "沣东",
  291. // "value": 30
  292. // },
  293. // {
  294. // "name": "秦汉",
  295. // "value": 20
  296. // },
  297. // {
  298. // "name": "泾河",
  299. // "value": 18
  300. // },
  301. // {
  302. // "name": "沣西",
  303. // "value": 8
  304. // }
  305. ]
  306. }
  307. ]
  308. },
  309. }
  310. }
  311. },
  312. onLoad() {
  313. this.makeMonthArr(this.dateYear)
  314. this.topChartFn(this.dateYear,this.dateMonth)
  315. },
  316. methods:{
  317. topChartFn(year,month){
  318. this.getStandardChart(year,month);
  319. this.getAdvancedCompanyChart(year,month);
  320. this.getIndustryChart(year,month);
  321. this.getImportantChart(year,month);
  322. this.getTechInfo(year,month);
  323. this.getEreaInfos(year,month,1);
  324. },
  325. makeMonthArr(y){
  326. this.arrayMonth = [];
  327. if(y == new Date().getFullYear()){
  328. let length = new Date().getMonth() + 1;
  329. for(let i = 1 ; i <= length; i++){
  330. this.arrayMonth.push(i)
  331. }
  332. this.dateMonth = length;
  333. }else {
  334. this.arrayMonth = ["1", "2","3", "4","5", "6","7", "8","9", "10","11", "12"]
  335. }
  336. this.topChartFn(this.dateYear,this.dateMonth)
  337. },
  338. getStandardChart(y,m){
  339. let md5Sign = md5(
  340. "method=" +
  341. "stat" +
  342. "&timestamp=" +
  343. getApp().globalData.globalTimestamp +
  344. "&secret=" +
  345. getApp().globalData.secret
  346. );
  347. let url =
  348. getApp().globalData.shareUrl +
  349. "api/api.php" +
  350. "?method=stat&action=standard_target&timestamp=" +
  351. getApp().globalData.globalTimestamp +
  352. "&sign=" +
  353. md5Sign;
  354. uni.request({
  355. url: url,
  356. method: "POST",
  357. header: {
  358. "content-type": "application/x-www-form-urlencoded",
  359. },
  360. data: {
  361. year:y,
  362. month:m,
  363. },
  364. success: (res) => {
  365. if (res.data.code === 200) {
  366. let targetData = [],targetData1 = [],finishData = [],finishData1 = [],targetRatio1 = '',targetRatio2 = '';
  367. this.standard_sized_count = res.data.data.standard_sized_count || '-';
  368. this.standard_sized_increase_ratio = res.data.data.standard_sized_increase_ratio || '-';
  369. this.advanced_count = res.data.data.advanced_count || '-';
  370. this.advanced_increase_ratio = res.data.data.advanced_increase_ratio || '-';
  371. if(res.data.data.target.length){
  372. res.data.data.target.forEach((item,index)=>{
  373. if(item.source === '2'){
  374. targetRatio2 = Number(item.increase_ratio) || 0
  375. }
  376. if(item.source === '1'){
  377. targetRatio1 = Number(item.increase_ratio) || 0
  378. }
  379. if(item.source !== '0'){
  380. targetData.push(Number(item.increase_balance))
  381. targetData1.push(Number(item.increase_ratio))
  382. }
  383. })
  384. }
  385. if(res.data.data.finish.length){
  386. res.data.data.finish.forEach((item,index)=>{
  387. if(item.source === '2'){
  388. let dataObj = {
  389. value:Number(item.increase_ratio),
  390. color:Number(item.increase_ratio) > targetRatio2 ? '#68d889' : '#cc0000'
  391. }
  392. finishData.push(Number(item.increase_balance))
  393. finishData1.push(dataObj)
  394. }
  395. if(item.source === '1'){
  396. let dataObj = {
  397. value:Number(item.increase_ratio),
  398. color:Number(item.increase_ratio) > targetRatio1 ? '#68d889' : '#cc0000'
  399. }
  400. finishData.push(Number(item.increase_balance))
  401. finishData1.push(dataObj)
  402. }
  403. })
  404. }
  405. this.chartData.series[0].data = targetData1.reverse()
  406. this.chartData.series[0].otherData = targetData.reverse()
  407. this.chartData.series[1].data = finishData1.reverse()
  408. this.chartData.series[1].otherData = finishData.reverse()
  409. }
  410. },
  411. fail: () => {
  412. console.log("连接失败");
  413. },
  414. });
  415. },
  416. getAdvancedCompanyChart(y,m){
  417. let md5Sign = md5(
  418. "method=" +
  419. "stat" +
  420. "&timestamp=" +
  421. getApp().globalData.globalTimestamp +
  422. "&secret=" +
  423. getApp().globalData.secret
  424. );
  425. let url =
  426. getApp().globalData.shareUrl +
  427. "api/api.php" +
  428. "?method=stat&action=advanced_company&timestamp=" +
  429. getApp().globalData.globalTimestamp +
  430. "&sign=" +
  431. md5Sign;
  432. uni.request({
  433. url: url,
  434. method: "POST",
  435. header: {
  436. "content-type": "application/x-www-form-urlencoded",
  437. },
  438. data: {
  439. year:y,
  440. month:m,
  441. },
  442. success: (res) => {
  443. if (res.data.code === 200) {
  444. let categoriesList = [],balanceList = [],lineBalanceList = [], lineLast = [];
  445. res.data.data.company_list.forEach((item)=>{
  446. categoriesList.push(item.short_name);
  447. balanceList.push(item.balance)
  448. })
  449. balanceList = balanceList.map((item)=>{ return (Number(item)/10000).toFixed(2)});
  450. // res.data.data.month_list.forEach((item)=>{
  451. // lineBalanceList.push(item.balance);
  452. // lineLast.push(item.last_balance)
  453. // })
  454. for(let key in res.data.data.month_list ){
  455. lineBalanceList.push(res.data.data.month_list[key].balance)
  456. lineLast.push(res.data.data.month_list[key].last_balance)
  457. }
  458. this.chartData1.categories = categoriesList;
  459. this.chartData1.series[0].data = balanceList;
  460. this.chartData2.series[0].data = lineBalanceList;
  461. this.chartData2.series[1].data = lineLast;
  462. }
  463. },
  464. fail: () => {
  465. console.log("连接失败");
  466. },
  467. });
  468. },
  469. industryFilter(data){
  470. let targetData = [],targetData1 = [],finishData = [],finishData1 = [],lineBalanceList = [], lineLast = [],storeRatio = '',techRatio = '';
  471. this.industryData.discuss_project_count = data.discuss_project_count || '-';
  472. this.industryData.industrial_investment_project_count = data.industrial_investment_project_count || '-';
  473. this.industryData.instore_project_count = data.instore_project_count || '-';
  474. if(data.target.length){
  475. let targetList = data.target;
  476. targetList.forEach((item)=>{
  477. if(item.source === '3'){
  478. storeRatio = Number(item.increase_ratio) || 0
  479. }
  480. if(item.source === '4'){
  481. techRatio = Number(item.increase_ratio) || 0
  482. }
  483. if(item.source !== '0'){
  484. targetData.push(Number(item.increase_balance))
  485. targetData1.push(Number(item.increase_ratio))
  486. }
  487. })
  488. }
  489. if(data.finish.length){
  490. let finishList = data.finish;
  491. let dataStoreObj = {
  492. value:Number(finishList[0].store_ratio),
  493. color:Number(finishList[0].store_ratio) > storeRatio ? '#68d889' : '#cc0000'
  494. }
  495. finishData1.push(dataStoreObj)
  496. let dataTechObj = {
  497. value:Number(finishList[0].tech_ratio),
  498. color:Number(finishList[0].tech_ratio) > techRatio ? '#68d889' : '#cc0000'
  499. }
  500. finishData1.push(dataTechObj)
  501. finishData = [Number(finishList[0].store_balance),Number(finishList[0].tech_balance)];
  502. }
  503. for(let key in data.month_list ){
  504. lineBalanceList.push(data.month_list[key].balance)
  505. lineLast.push(data.month_list[key].last_balance)
  506. }
  507. this.industryData.chartData.series[0].data = targetData1
  508. this.industryData.chartData.series[0].otherData = targetData
  509. this.industryData.chartData.series[1].data = finishData1
  510. this.industryData.chartData.series[1].otherData = finishData
  511. this.industryData.chartData2.series[0].data = lineBalanceList;
  512. this.industryData.chartData2.series[1].data = lineLast;
  513. },
  514. getIndustryChart(y,m){
  515. let md5Sign = md5(
  516. "method=" +
  517. "stat" +
  518. "&timestamp=" +
  519. getApp().globalData.globalTimestamp +
  520. "&secret=" +
  521. getApp().globalData.secret
  522. );
  523. let url =
  524. getApp().globalData.shareUrl +
  525. "api/api.php" +
  526. "?method=stat&action=industry&timestamp=" +
  527. getApp().globalData.globalTimestamp +
  528. "&sign=" +
  529. md5Sign;
  530. uni.request({
  531. url: url,
  532. method: "POST",
  533. header: {
  534. "content-type": "application/x-www-form-urlencoded",
  535. },
  536. data: {
  537. year:y,
  538. month:m,
  539. },
  540. success: (res) => {
  541. if (res.data.code === 200) {
  542. this.industryFilter(res.data.data)
  543. }
  544. },
  545. fail: () => {
  546. console.log("连接失败");
  547. },
  548. });
  549. },
  550. importantFilter(data){
  551. let lineBalanceList = [], lineLast = [];
  552. this.importantData.importent_project_count = data.importent_project_count || '-';
  553. this.importantData.new_project_count = data.new_project_count|| '-';
  554. this.importantData.continue_project_count = data.continue_project_count|| '-';
  555. this.importantData.investment_count = data.investment_count ? (data.investment_count/10000).toFixed(2):0
  556. if(data.province_level_count == 0 && data.city_level_count == 0 && data.area_level_count == 0 && data.new_city_level_count == 0){
  557. this.importantData.chartData.series[0].data = []
  558. }else{
  559. this.importantData.chartData.series[0].data = [data.province_level_count,data.city_level_count,data.area_level_count,data.new_city_level_count]
  560. }
  561. //this.importantData.chartData.series[0].data = [5,16,21]
  562. for(let key in data.month_list ){
  563. lineBalanceList.push(data.month_list[key].balance)
  564. lineLast.push(data.month_list[key].last_balance)
  565. }
  566. this.importantData.chartData2.series[0].data = lineBalanceList;
  567. this.importantData.chartData2.series[1].data = lineLast;
  568. },
  569. getImportantChart(y,m){
  570. let md5Sign = md5(
  571. "method=" +
  572. "stat" +
  573. "&timestamp=" +
  574. getApp().globalData.globalTimestamp +
  575. "&secret=" +
  576. getApp().globalData.secret
  577. );
  578. let url =
  579. getApp().globalData.shareUrl +
  580. "api/api.php" +
  581. "?method=stat&action=importent_project&timestamp=" +
  582. getApp().globalData.globalTimestamp +
  583. "&sign=" +
  584. md5Sign;
  585. uni.request({
  586. url: url,
  587. method: "POST",
  588. header: {
  589. "content-type": "application/x-www-form-urlencoded",
  590. },
  591. data: {
  592. year:y,
  593. month:m,
  594. },
  595. success: (res) => {
  596. if (res.data.code === 200) {
  597. this.importantFilter(res.data.data)
  598. }
  599. },
  600. fail: () => {
  601. console.log("连接失败");
  602. },
  603. });
  604. },
  605. getTechInfo(y,m){
  606. let md5Sign = md5(
  607. "method=" +
  608. "stat" +
  609. "&timestamp=" +
  610. getApp().globalData.globalTimestamp +
  611. "&secret=" +
  612. getApp().globalData.secret
  613. );
  614. let url =
  615. getApp().globalData.shareUrl +
  616. "api/api.php" +
  617. "?method=stat&action=tech_infos&timestamp=" +
  618. getApp().globalData.globalTimestamp +
  619. "&sign=" +
  620. md5Sign;
  621. uni.request({
  622. url: url,
  623. method: "POST",
  624. header: {
  625. "content-type": "application/x-www-form-urlencoded",
  626. },
  627. data: {
  628. year:y,
  629. month:m,
  630. },
  631. success: (res) => {
  632. if (res.data.code === 200) {
  633. this.techData.target = res.data.data.target;
  634. this.techData.finish = res.data.data.finish;
  635. }
  636. },
  637. fail: () => {
  638. console.log("连接失败");
  639. },
  640. });
  641. },
  642. ereaInfoFilter(data){
  643. let categoriesList = [], barData = [], pieData = [],lineData = [];
  644. for(let key in data.area_list ){
  645. if(data.area_list[key].name !== '西咸新区'){
  646. data.area_list[key].name = (data.area_list[key].name).substr(0,2)
  647. }
  648. categoriesList.push(data.area_list[key].name);
  649. barData.push(Number(data.area_list[key].value));
  650. if(data.area_list[key].ratio){
  651. lineData.push(Number(data.area_list[key].ratio))
  652. }
  653. pieData.push(data.area_list[key])
  654. }
  655. this.ereaData.chartDataBar.categories = categoriesList;
  656. this.ereaData.chartDataPie.categories = categoriesList;
  657. this.ereaData.chartDataBar.series[0].name = "各新城" + this.sortSelect;
  658. this.ereaData.chartDataBar.series[0].data = barData;
  659. // this.ereaData.chartDataBar.series[1].name = "各新城" + this.sortSelect;
  660. this.ereaData.chartDataBar.series[1].data = lineData;
  661. console.log(this.ereaData.chartDataBar)
  662. pieData.forEach((item)=>{item.value = Number(item.value)})
  663. this.ereaData.chartDataPie.series[0].data =pieData.filter((item)=>{return item.name !== '西咸新区'});
  664. },
  665. getEreaInfos(y,m,select){
  666. let md5Sign = md5(
  667. "method=" +
  668. "stat" +
  669. "&timestamp=" +
  670. getApp().globalData.globalTimestamp +
  671. "&secret=" +
  672. getApp().globalData.secret
  673. );
  674. let url =
  675. getApp().globalData.shareUrl +
  676. "api/api.php" +
  677. "?method=stat&action=erea_infos&timestamp=" +
  678. getApp().globalData.globalTimestamp +
  679. "&sign=" +
  680. md5Sign;
  681. uni.request({
  682. url: url,
  683. method: "POST",
  684. header: {
  685. "content-type": "application/x-www-form-urlencoded",
  686. },
  687. data: {
  688. year:y,
  689. month:m,
  690. source:select
  691. },
  692. success: (res) => {
  693. if (res.data.code === 200) {
  694. this.ereaInfoFilter(res.data.data)
  695. }
  696. },
  697. fail: () => {
  698. console.log("连接失败");
  699. },
  700. });
  701. },
  702. bindDateChange(e){
  703. this.dateYear = e.target.value
  704. this.makeMonthArr(e.target.value);
  705. },
  706. bindDateMonthChange(e){
  707. this.dateMonth = this.arrayMonth[e.target.value]
  708. this.topChartFn(this.dateYear,this.dateMonth)
  709. },
  710. bindDateCityChange(e){
  711. this.sortSelect = this.arrayNewCity[e.target.value]
  712. let dataSelect = Number(e.target.value) + 1;
  713. this.getEreaInfos(this.dateYear,this.dateMonth,dataSelect)
  714. },
  715. goScale(title,techType){
  716. uni.navigateTo({
  717. url:'./largeScale/index?title=' + title + '&year=' + this.dateYear + '&month=' + this.dateMonth + '&tech=' + techType
  718. })
  719. },
  720. goProject(idx){
  721. uni.navigateTo({
  722. url:'./projectPage/index?idx=' + idx + '&year=' + this.dateYear + '&month=' + this.dateMonth
  723. })
  724. },
  725. goImportant(idx){
  726. uni.navigateTo({
  727. url:'./importantPage/index?idx=' + idx
  728. })
  729. }
  730. }
  731. };
  732. </script>
  733. <style>
  734. .content-box {
  735. display: flex;
  736. flex-direction: column;
  737. flex: 1;
  738. }
  739. .title-date-box {
  740. margin-top: 10px;
  741. border-bottom: 1px solid #d7d7d7;
  742. padding-bottom: 10px;
  743. }
  744. .charts-box-title{
  745. width: 100%;
  746. height: 100rpx;
  747. }
  748. .charts-box {
  749. width: 100%;
  750. height: 600rpx;
  751. }
  752. .picker-class {
  753. border-radius: 10rpx;
  754. padding: 10rpx;
  755. width: 180rpx;
  756. font-size: 28rpx;
  757. background: #f5f5f5;
  758. margin-left: 20rpx;
  759. }
  760. .picker-class image {
  761. width: 26rpx;
  762. height: 26rpx;
  763. }
  764. .block-box-content {
  765. display: flex;
  766. flex-direction: column;
  767. justify-content: center;
  768. align-items: center;
  769. font-size: 34rpx;
  770. border-radius: 10rpx;
  771. width: 46%;
  772. height: 140rpx;
  773. color: #fff;
  774. background-color:#F2F2F2;
  775. }
  776. .title-second {
  777. width: 100%;
  778. height: 60rpx;
  779. line-height: 60rpx;
  780. text-align: center;
  781. font-size: 30rpx;
  782. /* font-weight: 550; */
  783. }
  784. .pos-font {
  785. position: absolute;
  786. color: rgba(255, 255, 255, 0.8);
  787. font-size: 20rpx;
  788. text-align: center;
  789. width: 110rpx;
  790. font-weight: 600;
  791. }
  792. .font-size30 {
  793. font-size: 30rpx;
  794. }
  795. </style>