3
2
dbcgit 6 år sedan
förälder
incheckning
055bc372bb

+ 14 - 0
src/dashoo.cn/backend/api/business/leader/leader.go

@@ -0,0 +1,14 @@
+package leader
+
+
+type LeaderInspect struct {
+	ProjectType  string     `xorm:"VARCHAR(50)"`					//检测报告名称
+	DeviceNum 	 int          `xorm:"INT(10)"`						  //设备总量
+	Tested 		string     `xorm:"VARCHAR(50)"`					 		//已检测
+
+}
+type LeaderYear	 struct {
+	ProjectType  string     `xorm:"VARCHAR(50)"`					//检测报告名称
+	DeviceNum 	 int          `xorm:"INT(10)"`						  //设备总量
+	Tested 		string     `xorm:"VARCHAR(50)"`					 		//已检测
+}

+ 83 - 0
src/dashoo.cn/backend/api/business/leader/leaderService.go

@@ -0,0 +1,83 @@
+package leader
+
+import (
+	. "dashoo.cn/backend/api/mydb"
+	"github.com/go-xorm/xorm"
+)
+type LeaderService struct {
+	MyServiceBase
+}
+
+func GetLeaderService(xormEngine *xorm.Engine) *LeaderService {
+s := new(LeaderService)
+s.DBE = xormEngine
+return s
+}
+//查询设备,设备总量
+func (s *LeaderService) GetLeaderDeviceList( ) []LeaderInspect{
+
+	//获取设备名称
+	sql := `SELECT
+	a.ProjectType,
+	COUNT(*) AS RecNum,
+	SUM(a.SampleNum) AS DeviceNum,
+	SUM(
+		CASE
+		WHEN b.CheckStatus > 0 THEN
+			a.SampleNum
+		ELSE
+			0
+		END
+	) AS Tested,
+	SUM(
+		CASE
+		WHEN b.CheckStatus <= 0 THEN
+			a.SampleNum
+		ELSE
+			0
+		END
+	) AS Undetected
+FROM
+	s5OVELimsEntrustMain a
+LEFT JOIN s5OVELimsDateEntry b ON a.id = b.EId
+GROUP BY
+	a.ProjectType`
+	List := make([]LeaderInspect, 0)
+	s.DBE.SQL(sql).Find(&List)
+
+	return  List
+}
+//查询年份
+func (s *LeaderService) GetLeaderYearList( ) []LeaderYear{
+
+	//获取设备名称
+	sql := `SELECT
+	a.ProjectType,
+	COUNT(*) AS RecNum,
+	SUM(a.SampleNum) AS DeviceNum,
+	SUM(
+		CASE
+		WHEN b.CheckStatus > 0 THEN
+			a.SampleNum
+		ELSE
+			0
+		END
+	) AS Tested,
+	SUM(
+		CASE
+		WHEN b.CheckStatus <= 0 THEN
+			a.SampleNum
+		ELSE
+			0
+		END
+	) AS Undetected
+FROM
+	s5OVELimsEntrustMain a
+LEFT JOIN s5OVELimsDateEntry b ON a.id = b.EId
+GROUP BY
+	a.ProjectType`
+	List := make([]LeaderYear, 0)
+	s.DBE.SQL(sql).Find(&List)
+
+	return  List
+}

+ 47 - 0
src/dashoo.cn/backend/api/controllers/leader/leader.go

@@ -0,0 +1,47 @@
+package leader
+
+import (
+
+	. "dashoo.cn/backend/api/controllers"
+
+	"dashoo.cn/utils"
+	"dashoo.cn/backend/api/business/leader"
+)
+
+type LeaderController struct {
+	BaseController
+}
+
+
+// @Title 初始化设备信息列表
+// @Description 设备列表
+// @Success 200
+// @router /leaderdata [get]
+func (this *LeaderController) GetLeaderData() {
+	var leaderList  []leader.LeaderInspect
+	//where := " 1=1 "
+	//where += " AND CreateUserId in (" + userIds + ")"
+	svc := leader.GetLeaderService(utils.DBE)
+	leaderList = svc.GetLeaderDeviceList()
+
+	var datainfo DataInfo
+	datainfo.Items = leaderList
+
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+// @Title 初始化年份信息
+// @Description  年份列表
+// @Success 200
+// @router /leaderyeardata [get]
+func (this *LeaderController) GetLeaderYearData() {
+	var leaderList  []leader.LeaderYear
+	svc := leader.GetLeaderService(utils.DBE)
+	leaderList = svc.GetLeaderYearList()
+
+	var datainfo DataInfo
+	datainfo.Items = leaderList
+
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}

+ 7 - 0
src/dashoo.cn/backend/api/routers/router.go

@@ -9,6 +9,7 @@ import (
 	"dashoo.cn/backend/api/controllers/document"
 	"dashoo.cn/backend/api/controllers/equipment"
 	"dashoo.cn/backend/api/controllers/instrument"
+	"dashoo.cn/backend/api/controllers/leader"
 	"dashoo.cn/backend/api/controllers/lims"
 	"dashoo.cn/backend/api/controllers/limsmetering"
 	"dashoo.cn/backend/api/controllers/limswzjys"
@@ -575,6 +576,12 @@ func init() {
 				&lims.LimsEntrustEquipmentController{},
 			),
 		),
+		// 领导及安全处设备列表
+		beego.NSNamespace("/leaderview",
+			beego.NSInclude(
+				&leader.LeaderController{},
+			),
+		),
 	)
 	beego.AddNamespace(ns)
 }

+ 16 - 0
src/dashoo.cn/frontend_web/src/api/lims/leader.js

@@ -0,0 +1,16 @@
+export default {
+  getLeaderView (params, myAxios) {
+    return myAxios({
+      url: '/leaderview/leaderdata',
+      method: 'GET',
+      params: params
+    })
+  },
+  getLeaderYearView (params, myAxios) {
+    return myAxios({
+      url: '/leaderview/leaderyeardata',
+      method: 'GET',
+      params: params
+    })
+  }
+}

+ 54 - 54
src/dashoo.cn/frontend_web/src/pages/lims/checkequipmentlist/index.vue

@@ -165,26 +165,26 @@
     },
     name: 'CheckEquipmentList',
 
-    data() {
+    data () {
       return {
         dialogVisible: false,
         dialogFormVisible: false,
         saveLoading: false,
-        //列表数据
+        // 列表数据
         entityList: [],
         PositionList: [],
-        //分页参数
+        // 分页参数
         size: 10,
         currentPage: 1,
         currentItemCount: 0,
-        //列表排序
+        // 列表排序
         Column: {
           Order: '',
           Prop: ''
         },
-        //查询时间
+        // 查询时间
         CreateOn: [new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()],
-        //查询项
+        // 查询项
         searchFormReset: {},
         searchForm: {
           Id: '',
@@ -198,7 +198,7 @@
           Spec: '',
           SpecId: '',
           Manufacturer: '',
-          Status: '',
+          Status: ''
 
         },
         testTypeList: [],
@@ -296,23 +296,23 @@
         CustomerId: 0
       }
     },
-    created() {
-      //查询条件初始值备份
+    created () {
+      // 查询条件初始值备份
       Object.assign(this.searchFormReset, this.searchForm)
-      //查询列表
+      // 查询列表
       this.initDatas()
       this.getProjectType()
       this.getCustomerInfo()
-      //this.getDictOptions()
+      // this.getDictOptions()
     },
     methods: {
-      initDatas() {
-        //分页及列表条件
+      initDatas () {
+        // 分页及列表条件
         let params = {
           _currentPage: this.currentPage,
           _size: this.size,
           Order: this.Column.Order,
-          Prop: this.Column.Prop,
+          Prop: this.Column.Prop
         }
         let myCreateOn = []
         // 解析时间
@@ -323,9 +323,9 @@
           myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
           myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
         }
-        //查询条件
+        // 查询条件
         Object.assign(params, this.searchForm)
-        //访问接口
+        // 访问接口
         api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
@@ -336,23 +336,23 @@
 
       getDictOptions () {
         api.getDictList(this.$axios).then(res => {
-          //this.dictOptions.customerList = res.data.items['customerList']
-          //this.dictOptions.projectList = res.data.items['projectList']
+          // this.dictOptions.customerList = res.data.items['customerList']
+          // this.dictOptions.projectList = res.data.items['projectList']
 
         }).catch(err => {
           console.error(err)
         })
       },
 
-      searchCommand(command) {
+      searchCommand (command) {
         if (command == 'search') {
           this.dialogVisible = true
         } else if (command == 'clear') {
           this.clearSearch()
         }
       },
-      //列表排序功能
-      orderby(column) {
+      // 列表排序功能
+      orderby (column) {
         if (column.order == 'ascending') {
           this.Column.Order = 'asc'
         } else if (column.order == 'descending') {
@@ -361,27 +361,27 @@
         this.Column.Prop = column.prop
         this.initDatas()
       },
-      clearSearch() {
-        Object.assign(this.searchForm, this.searchFormReset);
-        //this.searchForm = this.searchFormReset;
-        this.CreateOn = ''
+      clearSearch () {
+        Object.assign(this.searchForm, this.searchFormReset)
+      //this.searchForm = this.searchFormReset;
+      this.CreateOn = ''
         this.initDatas()
       },
-      handleSearch() {
-        this.currentPage = 1;
-        this.dialogVisible = false;
-        this.initDatas()
+      handleSearch () {
+        this.currentPage = 1
+      this.dialogVisible = false
+      this.initDatas()
       },
-      handleCurrentChange(value) {
+      handleCurrentChange (value) {
         this.currentPage = value
         this.initDatas()
       },
-      handleSizeChange(value) {
+      handleSizeChange (value) {
         this.size = value
         this.currentPage = 1
         this.initDatas()
       },
-      deleteConfirm(row) {
+      deleteConfirm (row) {
         this.$confirm('此操作将永久删除该设备, 是否继续?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
@@ -391,25 +391,25 @@
         })
       },
       deleteEntity (row) {
-        row.deleteConfirmFlag = false;
-        api.deleteEntity(row.Id, this.$axios).then(res => {
+        row.deleteConfirmFlag = false
+      api.deleteEntity(row.Id, this.$axios).then(res => {
           if (res.data.code === 0) {
             this.initDatas()
             this.$message({
               type: 'success',
               message: res.data.message
-            });
+            })
 
-          } else {
+        } else {
             this.$message({
               type: 'warning',
               message: res.data.message
-            });
-          }
+            })
+        }
         }).catch(err => {
           console.error(err)
-        });
-      },
+        })
+    },
 
       // 检测报告
       getProjectType () {
@@ -438,8 +438,8 @@
         }
         positionApi.customerPositionTree(params, this.$axios).then(res => {
           this.customerTreeList = window.toolfun_gettreejson(res.data.items, 'Id', 'ParentId',
-            'Id,CustomerId,ParentId,PositionName,PositionCode,PositionType,PositionTypeId');
-        })
+            'Id,CustomerId,ParentId,PositionName,PositionCode,PositionType,PositionTypeId')
+      })
           .catch(err => {
             // handle error
             console.error(err)
@@ -453,8 +453,8 @@
             _this.CustomerId = _this.customerForm.Id
             _this.gettreelist()
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
 
       jstimehandle (val) {
@@ -471,16 +471,16 @@
       },
 
       formatDateTime (date) {
-        var y = date.getFullYear();
-        var m = date.getMonth() + 1;
-        m = m < 10 ? ('0' + m) : m;
-        var d = date.getDate();
-        d = d < 10 ? ('0' + d) : d;
-        var h = date.getHours();
-        var minute = date.getMinutes();
-        minute = minute < 10 ? ('0' + minute) : minute;
-        return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
-      },
+        var y = date.getFullYear()
+      var m = date.getMonth() + 1
+      m = m < 10 ? ('0' + m) : m
+      var d = date.getDate()
+      d = d < 10 ? ('0' + d) : d
+      var h = date.getHours()
+      var minute = date.getMinutes()
+      minute = minute < 10 ? ('0' + minute) : minute
+      return y + '-' + m + '-' + d + ' ' + h + ':' + minute
+    },
 
       NewEntity () {
         this.dialogFormVisible = true

+ 26 - 26
src/dashoo.cn/frontend_web/src/pages/lims/leader/deviceCenter.vue

@@ -115,8 +115,8 @@
         <v-tooltip />
         <v-axis />
         <v-bar position="year*sales" />
-        <!--<v-line position="year*value" />
-        <v-point position="year*value" shape="circle" />-->
+        <v-line position="year*value" />
+        <v-point position="year*value" shape="circle" />
       </v-chart>
     </el-card>
 
@@ -137,22 +137,22 @@
 
 <script>
   const chartData = [
-    { year: '1951 年', sales: 38 },
-    { year: '1952 年', sales: 52 },
-    { year: '1956 年', sales: 61 },
-    { year: '1957 年', sales: 145 },
-    { year: '1958 年', sales: 48 },
-    { year: '1959 年', sales: 38 },
-    { year: '1960 年', sales: 38 },
-    { year: '1962 年', sales: 38 },
-  ];
-
-  const scale = [{
+    { year: '2018年11月', sales: 52 },
+  { year: '2018年12月', sales: 61 },
+  { year: '2019年01月', sales: 145 },
+  { year: '2019年02月', sales: 48 },
+  { year: '2019年03月', sales: 38 },
+  { year: '2019年05月', sales: 38 },
+  { year: '2019年06月', sales: 38 },
+  { year: '2019年07月', sales: 38 }
+  ]
+
+const scale = [{
     dataKey: 'sales',
-    tickInterval: 20,
-  }];
+    tickInterval: 20
+  }]
 
-  const lineData = [
+const lineData = [
     { year: '1991', value: 3 },
     { year: '1992', value: 4 },
     { year: '1993', value: 3.5 },
@@ -161,19 +161,19 @@
     { year: '1996', value: 6 },
     { year: '1997', value: 7 },
     { year: '1998', value: 9 },
-    { year: '1999', value: 13 },
-  ];
+    { year: '1999', value: 13 }
+  ]
 
-  const lineScale = [{
+const lineScale = [{
     dataKey: 'value',
-    min: 0,
-  },{
+    min: 0
+  }, {
     dataKey: 'year',
     min: 0,
-    max: 1,
-  }];
+    max: 1
+  }]
 
-  export default {
+export default {
     created () {
 
     },
@@ -194,7 +194,7 @@
           precent: 70,
           date: '2016-05-02',
           name: 'A001',
-          address: '第一采油作业区',
+          address: '第一采油作业区'
         }, {
           precent: 60,
           date: '2016-05-04',
@@ -204,7 +204,7 @@
           precent: 66,
           date: '2016-05-01',
           name: 'C003',
-          address: '第三采油作业区',
+          address: '第三采油作业区'
         }, {
           precent: 80,
           date: '2016-05-03',

+ 15 - 4
src/dashoo.cn/frontend_web/src/pages/lims/leader/index.vue

@@ -1,21 +1,32 @@
 <template>
   <div>
     <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
-      <el-menu-item index="1">地点统计</el-menu-item>
-      <el-menu-item index="2">设备统计</el-menu-item>
+      <el-menu-item index="1">领导及安全处1</el-menu-item>
+      <el-menu-item index="2">领导及安全处2</el-menu-item>
+      <el-menu-item index="3">检测评价中心</el-menu-item>
+      <el-menu-item index="4">检测评价中心2</el-menu-item>
+      <el-menu-item index="5">检测评价中心3</el-menu-item>
     </el-menu>
     <position-center v-if="activeIndex==1"></position-center>
     <device-center v-if="activeIndex==2"></device-center>
+    <testing-center v-if="activeIndex==3"></testing-center>
+  <testing-center02 v-if="activeIndex==4"></testing-center02>
+   <testing-center03 v-if="activeIndex==5"></testing-center03>
   </div>
 </template>
 <script>
   import positionCenter from './positionCenter.vue'
   import deviceCenter from './deviceCenter.vue'
-
+  import testingCenter from './testingCenter.vue'
+  import testingCenter02 from './testingCenter02.vue'
+  import testingCenter03 from './testingCenter03.vue'
   export default {
     components: {
       positionCenter,
-      deviceCenter
+      deviceCenter,
+      testingCenter,
+      testingCenter02,
+      testingCenter03
     },
     data () {
       return {

+ 170 - 101
src/dashoo.cn/frontend_web/src/pages/lims/leader/positionCenter.vue

@@ -14,7 +14,7 @@
           </el-date-picker>
         </el-form-item>
         <el-form-item label="检测地点">
-          <el-select v-model="formSearch.checkPosition" placeholder="检测地点">
+          <el-select :data="entityList" v-model="formSearch.checkPosition" placeholder="检测地点">
             <el-option label="区域一" value="shanghai"></el-option>
             <el-option label="区域二" value="beijing"></el-option>
           </el-select>
@@ -33,54 +33,65 @@
 
     <el-card class="box-card">
       <el-table
-        :data="tableData"
+        :data="entityList"
         style="width: 100%"
-        stripe>
+        size = "mini"
+        stripe
+        show-summary
+        :summary-method="getSummaries"
+        >
         <el-table-column
-          prop="address"
+          prop="ProjectType"
           label="检测地点"
         >
         </el-table-column>
 
         <el-table-column
-          prop="address"
+          prop="DeviceNum"
           label="设备总量"
         >
         </el-table-column>
 
         <el-table-column
-          prop="address"
+          prop="Tested"
           label="检测率"
         >
         </el-table-column>
 
         <el-table-column
-          prop="address"
+          prop="Tested"
           label="合格率"
         >
         </el-table-column>
       </el-table>
+       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentItemCount"   style="float:right;margin: 0"
+                     :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+      </el-pagination>
     </el-card>
 
-    <el-card class="box-card" style="margin-top: 5px">
+    <el-card class="box-card" style="margin-top: 10px">
 
       <el-table
         :data="tableData"
         style="width: 100%"
-        stripe>
+         size = "mini"
+        stripe
+         show-summary
+        :summary-method="getSummaries"
+        >
         <el-table-column
-          prop="address"
+          prop="ProjectType"
           label="检测地点">
         </el-table-column>
 
         <el-table-column
-          prop="name"
+          prop="DeviceNum"
           label="去年设备总量"
           width="180">
         </el-table-column>
 
         <el-table-column
-          prop="name"
+          prop="DeviceNum"
           label="今年设备总量"
           width="180">
         </el-table-column>
@@ -92,18 +103,21 @@
         </el-table-column>
 
         <el-table-column
-          prop="name"
+          prop="Tested"
           label="去年检测率"
           width="180">
         </el-table-column>
 
         <el-table-column
-          prop="name"
+          prop="Tested"
           label="今年检测率"
           width="180">
         </el-table-column>
 
       </el-table>
+       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentItemCount"   style="float:right;margin: 0"
+                     :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+      </el-pagination>
     </el-card>
 
     <el-card class="box-card" style="margin-top: 5px">
@@ -111,12 +125,12 @@
         <legend style="color:#436EEE"></legend>
         <i class="icon icon-database"> 图表展示</i>
       </div>
-      <v-chart :forceFit="true" :height="height" :data="chartData" :scale="scale">
+      <v-chart :forceFit="true" :height="height" :data="chartData" :scale="scale" >
         <v-tooltip />
         <v-axis />
         <v-bar position="year*sales" />
-        <!--<v-line position="year*value" />
-        <v-point position="year*value" shape="circle" />-->
+        <v-line position="year*value" />
+        <v-point position="year*value" shape="circle" />
       </v-chart>
     </el-card>
 
@@ -125,97 +139,152 @@
 
 </template>
 
-<style>
-  .el-table .warning-row {
-    background: oldlace;
-  }
 
-  .el-table .success-row {
-    background: #f0f9eb;
-  }
-</style>
 
 <script>
-  const chartData = [
-    { year: '1951 年', sales: 38 },
-    { year: '1952 年', sales: 52 },
-    { year: '1956 年', sales: 61 },
-    { year: '1957 年', sales: 145 },
-    { year: '1958 年', sales: 48 },
-    { year: '1959 年', sales: 38 },
-    { year: '1960 年', sales: 38 },
-    { year: '1962 年', sales: 38 },
-  ];
-
-  const scale = [{
-    dataKey: 'sales',
-    tickInterval: 20,
-  }];
-
-  const lineData = [
-    { year: '1991', value: 3 },
-    { year: '1992', value: 4 },
-    { year: '1993', value: 3.5 },
-    { year: '1994', value: 5 },
-    { year: '1995', value: 4.9 },
-    { year: '1996', value: 6 },
-    { year: '1997', value: 7 },
-    { year: '1998', value: 9 },
-    { year: '1999', value: 13 },
-  ];
-
-  const lineScale = [{
-    dataKey: 'value',
-    min: 0,
-  },{
-    dataKey: 'year',
-    min: 0,
-    max: 1,
-  }];
-
-  export default {
-    created () {
+import leaderView from '@/api/lims/leader'
+
+const chartData = [
+  { year: '2018年11月', sales: 52 },
+  { year: '2018年12月', sales: 61 },
+  { year: '2019年01月', sales: 145 },
+  { year: '2019年02月', sales: 48 },
+  { year: '2019年03月', sales: 38 },
+  { year: '2019年05月', sales: 38 },
+  { year: '2019年06月', sales: 38 },
+  { year: '2019年07月', sales: 38 }
+]
+
+const scale = [{
+  dataKey: 'sales',
+  tickInterval: 20
+}]
+
+const lineData = []
 
+const lineScale = [{
+  dataKey: 'value',
+  min: 0
+}, {
+  dataKey: 'year',
+  min: 0,
+  max: 1
+}]
+
+export default {
+  created () {
+    this.initDatas()
+  },
+  data () {
+    return {
+      formSearch: {
+        daterange: [],
+        checkPosition: '',
+        equipments: []
+      },
+      tableData: [],
+      // 列表数据
+      entityList: [],
+      PositionList: [],
+      // 分页参数
+      size: 10,
+      currentPage: 1,
+      currentItemCount: 0,
+      // 列表排序
+      Column: {
+        Order: '',
+        Prop: ''
+      },
+      // 查询时间
+      CreateOn: [new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()],
+      chartData,
+      scale,
+      lineData,
+      lineScale,
+      height: 400
+
+    }
+  },
+  methods: {
+    // 合计
+    getSummaries (param) {
+      const { columns, data } = param
+      const sums = []
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '合计'
+          return
+        }
+        const values = data.map(item => Number(item[column.property]))
+        if (!values.every(value => isNaN(value))) {
+          sums[index] = values.reduce((prev, curr) => {
+            const value = Number(curr)
+            if (!isNaN(value)) {
+              return prev + curr
+            } else {
+              return prev
+            }
+          }, 0)
+          sums[index] += ' '
+        } else {
+          sums[index] = 'N/A'
+        }
+      })
+
+      return sums
     },
-    data () {
-      return {
-        formSearch: {
-          daterange: [],
-          checkPosition: '',
-          equipments: []
-        },
-
-        chartData,
-        scale,
-        lineData,
-        lineScale,
-        height: 400,
-        tableData: [{
-          precent: 70,
-          date: '2016-05-02',
-          name: 'A001',
-          address: '漏电保护器',
-        }, {
-          precent: 60,
-          date: '2016-05-04',
-          name: 'B002',
-          address: '防雷装置'
-        }, {
-          precent: 66,
-          date: '2016-05-01',
-          name: 'C003',
-          address: '无游梁式抽油机',
-        }, {
-          precent: 80,
-          date: '2016-05-03',
-          name: 'D004',
-          address: '呼吸阀'
-        }]
-      }
+
+    onSubmit () {
     },
-    methods: {
-      onSubmit () {
+    // initdata () {
+    //   leaderView.getLeadervview().then(function (res) {
+    //
+    //   })
+    // },
+    initDatas () {
+      // 分页及列表条件
+      let params = {
+        _currentPage: this.currentPage,
+        _size: this.size,
+        Order: this.Column.Order,
+        Prop: this.Column.Prop
+      }
+      // 解析时间
+      if (this.CreateOn && this.CreateOn.length === 2) {
+        this.CreateOn[1].setHours(23)
+        this.CreateOn[1].setMinutes(59)
+        this.CreateOn[1].setSeconds(59)
+        // myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
+        // myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
       }
+      // 访问接口
+      leaderView.getLeaderView(params, this.$axios).then(res => {
+        console.log(res)
+        this.entityList = res.data.items
+        this.tableData = res.data.items
+        this.currentItemCount = res.data.currentItemCount
+      }).catch(err => {
+        console.error(err)
+      })
+    },
+    handleSizeChange (value) {
+      this.size = value
+      this.currentPage = 1
+      this.initDatas()
+    },
+    handleCurrentChange (value) {
+      this.currentPage = value
+      this.initDatas()
     }
   }
+}
 </script>
+
+<style>
+  .el-table .warning-row {
+    background: oldlace;
+  }
+  .el-table .success-row {
+    background: #f0f9eb;
+  }
+</style>

+ 254 - 0
src/dashoo.cn/frontend_web/src/pages/lims/leader/testingCenter.vue

@@ -0,0 +1,254 @@
+<template>
+  <div style="width: 100%; overflow-y: auto">
+    <el-card class="box-card" style="height: 70px">
+      <el-form :inline="true" :model="formSearch" class="demo-form-inline">
+        <el-form-item label="日期">
+          <el-date-picker
+            v-model="formSearch.daterange"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测地点">
+          <el-select v-model="formSearch.checkPosition" placeholder="检测地点">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设备选择">
+          <el-select v-model="formSearch.equipments" multiple placeholder="设备选择">
+            <el-option label="设备一" value="shanghai"></el-option>
+            <el-option label="设备二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="onSubmit">查询</el-button>
+        </el-form-item>
+      </el-form>
+    </el-card>
+
+    <el-card class="box-card">
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        stripe>
+        <el-table-column
+          prop="address"
+          label="检测地点"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="设备总量"
+        >
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="本月待检"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测率"
+        >
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="全年待检"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="全年已检"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="全年检测率"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="合格率"
+        >
+        </el-table-column>
+       
+      </el-table>
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 5px">
+
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        stripe>
+        <el-table-column
+          prop="address"
+          label="检测地点">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="去年设备总量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="今年设备总量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="变化量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="去年检测率"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="今年检测率"
+          width="180">
+        </el-table-column>
+
+      </el-table>
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 5px">
+      <div slot="header">
+        <legend style="color:#436EEE"></legend>
+        <i class="icon icon-database"> 图表展示</i>
+      </div>
+      <v-chart :forceFit="true" :height="height" :data="chartData" :scale="scale">
+        <v-tooltip />
+        <v-axis />
+        <v-bar position="year*sales" />
+        <v-line position="year*value" />
+        <v-point position="year*value" shape="circle" />
+      </v-chart>
+    </el-card>
+
+  </div>
+
+
+</template>
+
+<style>
+  .el-table .warning-row {
+    background: oldlace;
+  }
+
+  .el-table .success-row {
+    background: #f0f9eb;
+  }
+</style>
+
+<script>
+  const chartData = [
+    { year: '2018年11月', sales: 52 },
+    { year: '2018年12月', sales: 61 },
+    { year: '2019年01月', sales: 145 },
+    { year: '2019年02月', sales: 48 },
+    { year: '2019年03月', sales: 38 },
+    { year: '2019年05月', sales: 38 },
+    { year: '2019年06月', sales: 38 },
+    { year: '2019年07月', sales: 38 }
+  ]
+
+const scale = [{
+    dataKey: 'sales',
+    tickInterval: 20
+  }]
+
+const lineData = [
+    { year: '1991', value: 3 },
+    { year: '1992', value: 4 },
+    { year: '1993', value: 3.5 },
+    { year: '1994', value: 5 },
+    { year: '1995', value: 4.9 },
+    { year: '1996', value: 6 },
+    { year: '1997', value: 7 },
+    { year: '1998', value: 9 },
+    { year: '1999', value: 13 }
+  ]
+
+const lineScale = [{
+    dataKey: 'value',
+    min: 0
+  }, {
+    dataKey: 'year',
+    min: 0,
+    max: 1
+  }]
+
+export default {
+    created () {
+
+    },
+    data () {
+      return {
+        formSearch: {
+          daterange: [],
+          checkPosition: '',
+          equipments: []
+        },
+
+        chartData,
+        scale,
+        lineData,
+        lineScale,
+        height: 400,
+        tableData: [{
+          precent: 70,
+          date: '2016-05-02',
+          name: 'A001',
+          address: '第一采油作业区'
+        }, {
+          precent: 60,
+          date: '2016-05-04',
+          name: 'B002',
+          address: '第二采油作业区'
+        }, {
+          precent: 66,
+          date: '2016-05-01',
+          name: 'C003',
+          address: '第三采油作业区'
+        }, {
+          precent: 80,
+          date: '2016-05-03',
+          name: 'D004',
+          address: '第四采油作业区'
+        }, {
+          precent: 80,
+          date: '2016-05-03',
+          name: 'D004',
+          address: '第四采油作业区'
+        }]
+      }
+    },
+    methods: {
+      onSubmit () {
+      }
+    }
+  }
+</script>

+ 271 - 0
src/dashoo.cn/frontend_web/src/pages/lims/leader/testingCenter02.vue

@@ -0,0 +1,271 @@
+<template>
+  <div style="width: 100%; overflow-y: auto">
+    <el-card class="box-card" style="height: 70px">
+      <el-form :inline="true" :model="formSearch" class="demo-form-inline">
+        <el-form-item label="日期">
+          <el-date-picker
+            v-model="formSearch.daterange"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="单位选择">
+          <el-select v-model="formSearch.checkPosition" placeholder="检测地点">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设备选择">
+          <el-select v-model="formSearch.equipments" multiple placeholder="设备选择">
+            <el-option label="设备一" value="shanghai"></el-option>
+            <el-option label="设备二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="onSubmit">查询</el-button>
+        </el-form-item>
+      </el-form>
+    </el-card>
+
+    <el-card class="box-card">
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        stripe>
+        <el-table-column
+          prop="address"
+          label="检测地点"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="设备总量"
+        >
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="本月待检"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测率"
+        >
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="全年待检"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="全年已检"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="全年检测率"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="合格率"
+        >
+        </el-table-column>
+       
+      </el-table>
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 5px">
+
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        stripe>
+        <el-table-column
+          prop="address"
+          label="检测地点">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="去年设备总量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="今年设备总量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="变化量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="去年检测率"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="今年检测率"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="num"
+          label="去年费用"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="num"
+          label="今年费用"
+          width="180">
+        </el-table-column>
+
+      </el-table>
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 5px">
+      <div slot="header">
+        <legend style="color:#436EEE"></legend>
+        <i class="icon icon-database"> 图表展示</i>
+      </div>
+      <v-chart :forceFit="true" :height="height" :data="chartData" :scale="scale">
+        <v-tooltip />
+        <v-axis />
+        <v-bar position="year*sales" />
+        <v-line position="year*value" />
+        <v-point position="year*value" shape="circle" />
+      </v-chart>
+    </el-card>
+
+  </div>
+
+
+</template>
+
+<style>
+  .el-table .warning-row {
+    background: oldlace;
+  }
+
+  .el-table .success-row {
+    background: #f0f9eb;
+  }
+</style>
+
+<script>
+  const chartData = [
+    { year: '2018年11月', sales: 52 },
+    { year: '2018年12月', sales: 61 },
+    { year: '2019年01月', sales: 145 },
+    { year: '2019年02月', sales: 48 },
+    { year: '2019年03月', sales: 38 },
+    { year: '2019年05月', sales: 38 },
+    { year: '2019年06月', sales: 38 },
+    { year: '2019年07月', sales: 38 }
+  ]
+
+const scale = [{
+    dataKey: 'sales',
+    tickInterval: 20
+  }]
+
+const lineData = [
+    { year: '1991', value: 3 },
+    { year: '1992', value: 4 },
+    { year: '1993', value: 3.5 },
+    { year: '1994', value: 5 },
+    { year: '1995', value: 4.9 },
+    { year: '1996', value: 6 },
+    { year: '1997', value: 7 },
+    { year: '1998', value: 9 },
+    { year: '1999', value: 13 }
+  ]
+
+const lineScale = [{
+    dataKey: 'value',
+    min: 0
+  }, {
+    dataKey: 'year',
+    min: 0,
+    max: 1
+  }]
+
+export default {
+    created () {
+
+    },
+    data () {
+      return {
+        formSearch: {
+          daterange: [],
+          checkPosition: '',
+          equipments: []
+        },
+
+        chartData,
+        scale,
+        lineData,
+        lineScale,
+        height: 400,
+        tableData: [{
+          precent: 70,
+          date: '2016-05-02',
+          name: 'A001',
+          address: '漏电保护器',
+          num: '1000'
+        }, {
+          precent: 60,
+          date: '2016-05-04',
+          name: 'B002',
+          address: '防雷装置',
+          num: '1000'
+        }, {
+          precent: 66,
+          date: '2016-05-01',
+          name: 'C003',
+          address: '无游梁式抽油机',
+          num: '1000'
+        }, {
+          precent: 80,
+          date: '2016-05-03',
+          name: 'D004',
+          address: '呼吸阀',
+          num: '1000'
+        }, {
+          precent: 80,
+          date: '2016-05-03',
+          name: 'D004',
+          address: '呼吸阀',
+          num: '1000'
+        }]
+      }
+    },
+    methods: {
+      onSubmit () {
+      }
+    }
+  }
+</script>

+ 261 - 0
src/dashoo.cn/frontend_web/src/pages/lims/leader/testingCenter03.vue

@@ -0,0 +1,261 @@
+<template>
+  <div style="width: 100%; overflow-y: auto">
+    <el-card class="box-card" style="height: 70px">
+      <el-form :inline="true" :model="formSearch" class="demo-form-inline">
+        <el-form-item label="日期">
+          <el-date-picker
+            v-model="formSearch.daterange"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="二级单位选择">
+          <el-select v-model="formSearch.checkPosition" placeholder="检测地点">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设备选择">
+          <el-select v-model="formSearch.equipments" multiple placeholder="设备选择">
+            <el-option label="设备一" value="shanghai"></el-option>
+            <el-option label="设备二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="onSubmit">查询</el-button>
+        </el-form-item>
+      </el-form>
+    </el-card>
+
+    <el-card class="box-card">
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        stripe>
+        <el-table-column
+          prop="address"
+          label="检测地点"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="设备总量"
+        >
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="本月待检"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测"
+        >
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测率"
+        >
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="全年待检"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="全年已检"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="全年检测率"
+        >
+        </el-table-column>
+         <el-table-column
+          prop="name"
+          label="合格率"
+        >
+        </el-table-column>
+       
+      </el-table>
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 5px">
+
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        stripe>
+        <el-table-column
+          prop="address"
+          label="检测地点">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="设备总量"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月待检"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="本月检测率"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="全年待检"
+          width="180">
+        </el-table-column>
+
+        <el-table-column
+          prop="name"
+          label="全年已检"
+          width="180">
+        </el-table-column>
+
+         <el-table-column
+          prop="name"
+          label="全年检测率"
+          width="180">
+        </el-table-column>
+
+      </el-table>
+    </el-card>
+
+    <el-card class="box-card" style="margin-top: 5px">
+      <div slot="header">
+        <legend style="color:#436EEE"></legend>
+        <i class="icon icon-database"> 图表展示</i>
+      </div>
+      <v-chart :forceFit="true" :height="height" :data="chartData" :scale="scale">
+        <v-tooltip />
+        <v-axis />
+        <v-bar position="year*sales" />
+        <v-line position="year*value" />
+        <v-point position="year*value" shape="circle" />
+      </v-chart>
+    </el-card>
+
+  </div>
+
+
+</template>
+
+<style>
+  .el-table .warning-row {
+    background: oldlace;
+  }
+
+  .el-table .success-row {
+    background: #f0f9eb;
+  }
+</style>
+
+<script>
+  const chartData = [
+    { year: '2018年11月', sales: 52 },
+    { year: '2018年12月', sales: 61 },
+    { year: '2019年01月', sales: 145 },
+    { year: '2019年02月', sales: 48 },
+    { year: '2019年03月', sales: 38 },
+    { year: '2019年05月', sales: 38 },
+    { year: '2019年06月', sales: 38 },
+    { year: '2019年07月', sales: 38 }
+  ]
+
+const scale = [{
+    dataKey: 'sales',
+    tickInterval: 20
+  }]
+
+const lineData = [
+    { year: '1991', value: 3 },
+    { year: '1992', value: 4 },
+    { year: '1993', value: 3.5 },
+    { year: '1994', value: 5 },
+    { year: '1995', value: 4.9 },
+    { year: '1996', value: 6 },
+    { year: '1997', value: 7 },
+    { year: '1998', value: 9 },
+    { year: '1999', value: 13 }
+  ]
+
+const lineScale = [{
+    dataKey: 'value',
+    min: 0
+  }, {
+    dataKey: 'year',
+    min: 0,
+    max: 1
+  }]
+
+export default {
+    created () {
+
+    },
+    data () {
+      return {
+        formSearch: {
+          daterange: [],
+          checkPosition: '',
+          equipments: []
+        },
+
+        chartData,
+        scale,
+        lineData,
+        lineScale,
+        height: 400,
+        tableData: [{
+          precent: 70,
+          date: '2016-05-02',
+          name: 'A001',
+          address: '漏电保护器'
+        }, {
+          precent: 60,
+          date: '2016-05-04',
+          name: 'B002',
+          address: '防雷装置'
+        }, {
+          precent: 66,
+          date: '2016-05-01',
+          name: 'C003',
+          address: '无游梁式抽油机'
+        }, {
+          precent: 80,
+          date: '2016-05-03',
+          name: 'D004',
+          address: '呼吸阀'
+        }]
+      }
+    },
+    methods: {
+      onSubmit () {
+      }
+    }
+  }
+</script>