You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

398 lines
19 KiB

  1. @{
  2. ViewBag.Title = "Floor";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  8. <meta name="renderer" content="webkit">
  9. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  10. <meta name="format-detection" content="telephone=no" />
  11. <link rel="shortcut icon" href="" />
  12. <title>数字化校园-宿舍</title>
  13. <meta name="keywords" content="数字化校园-宿舍" />
  14. <meta name="description" content="数字化校园-宿舍" />
  15. <link href="~/Content/font/css/font-awesome.css" rel="stylesheet" />
  16. <link href="~/Content/css/swiper.min.css" rel="stylesheet" />
  17. <link href="~/Content/css/common.css" rel="stylesheet" />
  18. <link href="~/Content/css/index.css" rel="stylesheet" />
  19. <!--自适应-->
  20. <script src="~/Content/jquery/plugin/layer/layer.js"></script>
  21. <script src="~/Content/echarts/echarts.js"></script>
  22. <script src="~/Content/news/js/easing.js"></script>
  23. <script src="~/Content/jquery/plugin/jquery-ui/jquery-ui.min.js"></script>
  24. <!--自适应-->
  25. <script src="~/Content/js/dormitory/main.js"></script>
  26. <!--[if lte IE 9]>
  27. <script src="js/respond.min.js"></script>
  28. <script src="js/html5shiv.js"></script>
  29. <![endif]-->
  30. <style>
  31. html, body {
  32. background-image: url('/Content/images/floor/bg.jpg');
  33. filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='/Content/images/floor/bg.jpg', sizingMethod='scale');
  34. overflow: auto;
  35. }
  36. .layerImg {
  37. top: -10px;
  38. left: -210px;
  39. width: 400px
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <!-- / warpper -->
  45. <div id="app" class="index_warpper floor_warpper">
  46. <!-- / index_sec1 -->
  47. <div class="index_sec index_sec1">
  48. <div class="index_box">
  49. <div class="indSec1T">
  50. @*山西省小店区高新校区*@
  51. <ul class="indSec1List">
  52. @*<li><a href="#" @@click="allocation()"><img src="/Content/images/floor/inSec1-6.png" alt="" />自动分配宿舍</a></li>*@
  53. <li><a href="#" @@click="addFloor()"><img src="/Content/images/floor/inSec1-7.png" alt="" />添加宿舍楼</a></li>
  54. @*<li><a href="#"><img src="/Content/images/floor/inSec1-8.png" alt="" />批量删除</a></li>*@
  55. @*<li><a href="#"><img src="/Content/images/floor/inSec1-9.png" alt="" />打印宿舍数据</a></li>*@
  56. </ul>
  57. </div>
  58. <div class="inSec1Row">
  59. <div v-for="floor in floors" class="inSec1Col3">
  60. <div class="inSec1Box">
  61. <div class="inSec1Top">
  62. <span>{{floor.dormitory.Name}}</span>
  63. <ul class="inSec1TopList">
  64. <li>
  65. <a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>
  66. <div class="inSec1Con inSec1Con1">
  67. <img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />
  68. <div class="inSec1Con2">
  69. <div class="inSec1ConT">
  70. {{floor.dormitory.Name}}
  71. @*<div class="inSec1Sex" :style="floor.dormitory.Sex | filter_style"><img :src="floor.dormitory.Sex | filter_sexImg" alt="" />{{floor.dormitory.Sex | filter_sex}}</div>*@
  72. </div>
  73. <div class="inSec1ConTxt">
  74. <span>{{floor.UnitNum}}</span>单元 <span>{{floor.floorNum}}</span>层 <span>{{floor.RoomNum}}</span>间
  75. </div>
  76. <div class="inSec1ConTxt">
  77. <span>{{floor.BedNum}}</span>床位 &nbsp;&nbsp;&nbsp;&nbsp; 入住<span>{{floor.HasStudentNum}}</span>人
  78. </div>
  79. <div @@click="checkDetail(floor)" class="inSec1Btn">查看更多信息 <i class="fa fa-angle-right"></i></div>
  80. </div>
  81. </div>
  82. </li>
  83. <li @@click="update(floor.dormitory.ID)"><a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>
  84. <li @@click="deleteFloor(floor)"><a href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>
  85. </ul>
  86. <div class="clear"></div>
  87. </div>
  88. <div class="inSec1Img">
  89. <a :href="floor.dormitory.ID | filter_url"><img src="/Content/images/floor/inSec1-4.png" alt="" /></a>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <!-- / index_sec1 -->
  97. </div>
  98. <!-- / warpper -->
  99. <script>
  100. var color1 = ['#6471F3', '#A4C2FF'], color2 = ['#94DB95', '#ED94A5'];
  101. var vm = new Vue({
  102. el: "#app",
  103. data: {
  104. floors: "",
  105. sexImgUrl: "/Content/images/floor/inSec1-10.png",
  106. },
  107. methods: {
  108. getData: function () {
  109. $.get('/LogisticsManagement/Accommodation/GetDormitoryList', function (ref) {
  110. this.floors = ref.data;
  111. }.bind(this), "json");
  112. },
  113. laterGetData: function () {
  114. setTimeout(function () {
  115. this.getData();
  116. }.bind(this), 1000);
  117. },
  118. filter_Dept: function (value) {
  119. var result = '';
  120. top.learun.clientdata.getAsync('custmerData', {
  121. sync: true,
  122. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
  123. key: value,
  124. keyId: 'deptno',
  125. callback: function (_data) {
  126. result = _data.deptname;
  127. }
  128. });
  129. return result;
  130. },
  131. filter_Major: function (value) {
  132. var result = '';
  133. top.learun.clientdata.getAsync('custmerData', {
  134. sync: true,
  135. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
  136. key: value,
  137. keyId: 'id',
  138. callback: function (_data) {
  139. result = _data.majorname;
  140. }
  141. });
  142. return result;
  143. },
  144. filter_company: function (value) {
  145. var result;
  146. top.learun.clientdata.getAsync('custmerData', {
  147. sync: true,
  148. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
  149. key: value,
  150. keyId: 'f_companyid',
  151. callback: function (_data) {
  152. result = _data.f_fullname;
  153. }
  154. });
  155. return result;
  156. },
  157. filter_sex: function (value) {
  158. if (value == "1") {
  159. return '<div class="laySec1Sex" style="background:#7070da"><img src="/Content/images/floor/inSec1-10_2.png" alt="" />男生宿舍</div></div>'
  160. } else {
  161. return '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>'
  162. }
  163. },
  164. allocation: function () {
  165. top.learun.layerForm({
  166. id: 'form',
  167. title: '自动分配宿舍',
  168. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Allocation',
  169. width: 400,
  170. height: 250,
  171. callBack: function (id) {
  172. return top[id].acceptClick();
  173. }
  174. });
  175. },
  176. addFloor: function () {
  177. var url = "";
  178. url = top.$.rootUrl + '/LogisticsManagement/Accommodation/FormClassify';
  179. top.learun.layerForm({
  180. id: 'form',
  181. title: '新增',
  182. url: url,
  183. width: 600,
  184. height: 400,
  185. callBack: function (id) {
  186. return top[id].acceptClick(this.laterGetData());
  187. }.bind(this)
  188. });
  189. },
  190. update: function (id) {
  191. top.learun.layerForm({
  192. id: 'form',
  193. title: '编辑',
  194. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/FormClassify?keyValue=' + id,
  195. width: 600,
  196. height: 400,
  197. callBack: function (id) {
  198. return top[id].acceptClick(this.laterGetData());
  199. }.bind(this)
  200. });
  201. },
  202. deleteFloor: function (floor) {
  203. top.learun.layerConfirm('是否确认删除该项!', function (res) {
  204. if (res) {
  205. this.floors.splice($.inArray(floor, this.floors), 1);
  206. top.learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/Accommodation/DeleteForm', { keyValue: floor.dormitory.ID }, function () {
  207. });
  208. }
  209. }.bind(this));
  210. },
  211. checkDetail: function (floor) {
  212. var echarts1;
  213. //圆形图
  214. var i = 0;
  215. var g = "0%";
  216. if (!!floor.HasStudentNum && !!floor.BedNum && floor.HasStudentNum != 0 && floor.BedNum != 0) {
  217. g = ((floor.HasStudentNum / floor.BedNum) * 100).toFixed(2) + "%";
  218. }
  219. layer.open({
  220. type: 1,
  221. closeBtn: 2,
  222. area: ['888px', '80%'],
  223. content: '<div class="layerBox">' +
  224. '<img class="layerImg" src="/Content/images/floor/inSec1-4.png" alt="" />' +
  225. '<div class="layer_sec1 layer_sec">' +
  226. '<div class="laySec1L">' +
  227. '<div class="laySec1ConT">' + floor.dormitory.Name +
  228. '<span style="display:none">' + this.filter_sex(floor.dormitory.Sex) + '</span>' +
  229. '</div>' +
  230. '<div class="laySec1R">' +
  231. '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + floor.dormitory.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + floor.dormitory.Phone + '</div></div>' +
  232. '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + this.filter_company(floor.dormitory.Campus) + '</div>' +
  233. '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + floor.dormitory.Address + '</div>' +
  234. '</div>' +
  235. '</div>' +
  236. '<div class="layer_sec layer_sec2">' +
  237. '<ul class="laySec2List">' +
  238. '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>' + floor.dormitory.DNo + '</li>' +
  239. '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + (floor.dormitory.Price == null ? '' : floor.dormitory.Price) + ' <i>元</i></li>' +
  240. '<li><span>单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;元</span>' + floor.UnitNum + ' <i>个</i></li>' +
  241. '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>' + floor.HasStudentNum + ' <i>人</i></li>' +
  242. '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>' + floor.floorNum + ' <i>层</i></li>' +
  243. '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>' + floor.NoStudentNum + ' <i>床</i></li>' +
  244. '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>' + floor.RoomNum + ' <i>间</i></li>' +
  245. //'<li><span>涉及院系</span>' + this.filter_Dept(floor.dormitory.Dept) + '</li>' +
  246. '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>' + floor.UnitNum + ' <i>个</i></li>' +
  247. // '<li><span>涉及专业</span>' + this.filter_Major(floor.dormitory.Major) + '</li>' +
  248. '</ul>' +
  249. '<div class="laySec2Btn">' +
  250. //'<a href="#"><img @@click="update(floor.dormitory.ID)" src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  251. //'<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  252. //'<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  253. '</div>' +
  254. '</div>' +
  255. '<div class="layer_sec layer_sec3">' +
  256. '<div class="layerSec3Box">' +
  257. '<div id="echarts1" style="width: 100%;height:300px;"></div>' +
  258. '</div>' +
  259. '<div class="layerSec3Box">' +
  260. '<div id="echarts2" style="width: 100%;height:300px;"></div>' +
  261. '</div>' +
  262. '</div>' +
  263. '<div class="layer_sec layer_sec2 layer_sec4">' +
  264. '<ul class="laySec2List">' +
  265. '<li><span>创 建 人 </span>' + floor.dormitory.CreateBy + '</li>' +
  266. '<li><span>创建时间 </span>' + floor.dormitory.CreateTime + '</li>' +
  267. '<li><span>更 新 人</span>' + floor.dormitory.UpdateBy + ' </li>' +
  268. '<li><span>更新时间</span>' + floor.dormitory.UpdateTime + ' </li>' +
  269. '</ul>' +
  270. '</div>' +
  271. '</div>',
  272. cancel: function () {
  273. echarts1.dispose();
  274. }
  275. })
  276. echarts1 = echarts.init(document.getElementById('echarts1'));
  277. echarts1.setOption({
  278. title: {
  279. text: '{a|' + g + '}\n{b|入住率}',
  280. x: 'center',
  281. y: 'center',
  282. textStyle: {
  283. rich: {
  284. a: {
  285. fontSize: '26',
  286. color: '#8F8F8F',
  287. lineHeight: 40
  288. },
  289. b: {
  290. fontSize: '16',
  291. color: '#B1B1B1'
  292. }
  293. }
  294. }
  295. },
  296. legend: {
  297. data: ['空床', '入住']
  298. },
  299. grid: {
  300. top: '5%',
  301. left: '2%',
  302. bottom: '10%',
  303. containLabel: true
  304. },
  305. tooltip: {
  306. show: true
  307. },
  308. series: [
  309. {
  310. name: '',
  311. type: 'pie',
  312. radius: ['50%', '70%'],
  313. avoidLabelOverlap: true,
  314. // 高亮偏移值
  315. hoverOffset: 5,
  316. label: {
  317. normal: {
  318. show: false
  319. }
  320. },
  321. labelLine: {
  322. normal: {
  323. show: false
  324. }
  325. },
  326. // highlight 自定义属性 有此属性该数据集保持高亮
  327. data: [{ value: floor.HasStudentNum, name: "入住" }, { value: floor.NoStudentNum, name: "空床" }],
  328. itemStyle: {
  329. normal: {
  330. color: function () {
  331. return color1[i++];
  332. }
  333. },
  334. },
  335. }
  336. ]
  337. });
  338. }
  339. },
  340. created() {
  341. this.getData();
  342. },
  343. filters: {
  344. filter_sex: function (value) {
  345. return value == "1" ? "男生宿舍" : "女生宿舍";
  346. },
  347. filter_sexImg: function (value) {
  348. return value == "1" ? "/Content/images/floor/inSec1-10_2.png" : "/Content/images/floor/inSec1-10.png"
  349. },
  350. filter_style: function (value) {
  351. return value == "1" ? { background: '#7070da' } : {};
  352. },
  353. filter_url: function (value) {
  354. return "/LogisticsManagement/Accommodation/Unit?ID=" + value + "&bbc=aa%26";
  355. }
  356. }
  357. })
  358. </script>
  359. </body>
  360. )