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.
 
 
 
 
 
 

460 lines
23 KiB

  1. @{
  2. ViewBag.Title = "Unit";
  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/bg2.jpg');
  33. filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='/Content/images/floor/bg2.jpg', sizingMethod='scale');
  34. overflow: auto;
  35. }
  36. .layerImg {
  37. top: 0px;
  38. left: 0px;
  39. width: 225px
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <!-- / warpper -->
  45. <div id="app" class="index_warpper unit_warpper">
  46. <!-- / index_sec1 -->
  47. <div class="index_sec index_sec1">
  48. <div class="index_box">
  49. <div class="indSec1T">
  50. @*山西省小店区高新校区*@ <a href="/LogisticsManagement/Accommodation/Floor">{{dormitoryName}}</a>
  51. <ul class="indSec1List">
  52. @*<li><a href="#"><img src="/Content/images/floor/inSec1-5.png" alt="" />多条件查找宿舍楼</a></li>
  53. <li><a href="#"><img src="/Content/images/floor/inSec1-6.png" alt="" />自动分配宿舍</a></li>*@
  54. <li><a href="#" @@click="addFloor()"><img src="/Content/images/floor/inSec1-7.png" alt="" />添加单元</a></li>
  55. @*<li><a href="#"><img src="/Content/images/floor/inSec1-8.png" alt="" />批量删除</a></li>
  56. <li><a href="#"><img src="/Content/images/floor/inSec1-9.png" alt="" />打印宿舍数据</a></li>*@
  57. </ul>
  58. </div>
  59. <div class="inSec1Row">
  60. <div v-for="floor in floors" class="inSec1Col3">
  61. <div class="inSec1Box">
  62. <div class="inSec1Top">
  63. <span>{{floor.dormitory.Name}}</span>
  64. <ul class="inSec1TopList">
  65. <li>
  66. <a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>
  67. <div class="inSec1Con inSec1Con1">
  68. <img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />
  69. <div class="inSec1Con2">
  70. <div class="inSec1ConT">{{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.floorNum}}</span>层 <span>{{floor.RoomNum}}</span>间 <span>{{floor.BedNum}}</span>床
  75. </div>
  76. <div class="inSec1ConTxt">
  77. 入住 <span>{{floor.HasStudentNum}}</span>人 &nbsp;&nbsp;&nbsp;&nbsp; 空闲<span>{{floor.NoStudentNum}}</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><a @@click="update(floor.dormitory.ID)" href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>
  84. <li><a @@click="deleteFloor(floor)" 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/unit1-1.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 data = {
  101. // "rows": [
  102. // {
  103. // "ID": "289fb13a-8e91-4c5d-bd6b-7b7de344dc17",
  104. // "Name": "1单元",
  105. // "Functionary": '负责人',
  106. // "Leader": '舍长',
  107. // "BuildType": "宿舍楼-类型",
  108. // "CreateBy": '创建人',
  109. // "CreateTime": '创建时间',
  110. // "UpdateBy": '更新人',
  111. // "UpdateTime": '更新时间',
  112. // "Price": '价格',
  113. // "Remark": '备注说明',
  114. // "Phone": '负责人电话',
  115. // "Address": '地址',
  116. // "Campus": '校区',
  117. // "Dept": '系',
  118. // "Major": '专业',
  119. // "Class": '班级',
  120. // "Sex": "0",//性别
  121. // "StudentID": '学生id',
  122. // "ParentID": "父ID",
  123. // "StuName": 'null'
  124. // },
  125. // {
  126. // "ID": "289fb13a-8e91-4c5d-bd6b-7b7de344dc17",
  127. // "Name": "22单元",
  128. // "Functionary": '张丽梅',
  129. // "Leader": '舍长',
  130. // "BuildType": "宿舍楼-类型",
  131. // "CreateBy": '薛礼根',
  132. // "CreateTime": '2019-05-14',
  133. // "UpdateBy": '薛礼根',
  134. // "UpdateTime": '2019-05-14',
  135. // "Price": '800~1200',
  136. // "Remark": '备注说明',
  137. // "Phone": '15735806069',
  138. // "Address": '山西省小店区南中环街高新区23号',
  139. // "Campus": '山西省小店区高新校区',
  140. // "Dept": '数学系',
  141. // "Major": '数学与应用数学',
  142. // "Class": '班级',
  143. // "Sex": "0",//性别
  144. // "StudentID": '学生id',
  145. // "ParentID": "父ID",
  146. // "StuName": 'null'
  147. // }
  148. // ],
  149. // "total": 1,
  150. // "page": 1,
  151. // "records": 10
  152. //}
  153. //var html = '';
  154. //$.each(data.rows, function (i, n) {
  155. // var floor = floorName(n.Name, 2);
  156. // html += '<div class="inSec1Col3">' +
  157. // '<div class="inSec1Box">' +
  158. // '<div class="inSec1Top">' +
  159. // '<span><span>' + floor + '</span> 单元</span>' +
  160. // '<ul class="inSec1TopList">' +
  161. // '<li>' +
  162. // '<a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>' +
  163. // '<div class="inSec1Con inSec1Con1">' +
  164. // '<img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />' +
  165. // '<div class="inSec1Con2">' +
  166. // '<div class="inSec1ConT"><span>' + floor + '</span>单元 <div class="inSec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>' +
  167. // '<div class="inSec1ConTxt">' +
  168. // '<span>6</span>层 <span>120</span>间 <span>480</span>床' +
  169. // '</div>' +
  170. // '<div class="inSec1ConTxt">' +
  171. // '入住 <span>1210</span>人 &nbsp;&nbsp;&nbsp;&nbsp; 空闲<span>1920</span>床位' +
  172. // '</div>' +
  173. // '<div class="inSec1Btn" index="' + i + '">查看更多信息 <i class="fa fa-angle-right"></i></div>' +
  174. // '</div>' +
  175. // '</div>' +
  176. // '</li>' +
  177. // '<li><a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>' +
  178. // '<li><a href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>' +
  179. // '</ul>' +
  180. // '<div class="clear"></div>' +
  181. // '</div>' +
  182. // '<div class="inSec1Img">' +
  183. // '<a href="corridor"><img src="/Content/images/floor/unit1-1.png" alt="" /></a>' +
  184. // '</div></div></div>';
  185. //})
  186. //$('.inSec1Row').html(html).on('click', '.inSec1Btn', function () {
  187. // var ind = $(this).attr('index');
  188. // var datas = data.rows[ind];
  189. // var floor = floorName(datas.Name, 2);
  190. // layer.open({
  191. // type: 1,
  192. // closeBtn: 2,
  193. // area: ['888px', '80%'],
  194. // content: '<div class="layerBox unitLayer">' +
  195. // '<div class="layer_sec1 layer_sec">' +
  196. // '<div class="laySec1L">' +
  197. // '<div class="laySec1ConTitle"><span>1</span>号楼</div>' +
  198. // '<div class="laySec1ConT"><span>' + floor + '</span>单元' +
  199. // '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>' +
  200. // '</div>' +
  201. // '<div class="laySec1R">' +
  202. // '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + datas.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + datas.Phone + '</div></div>' +
  203. // '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + datas.Campus + '</div>' +
  204. // '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + datas.Address + '</div>' +
  205. // '</div>' +
  206. // '</div>' +
  207. // '<div class="layer_sec layer_sec2">' +
  208. // '<ul class="laySec2List">' +
  209. // '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>001</li>' +
  210. // '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + datas.Price + ' <i>元</i></li>' +
  211. // '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>6 <i>个</i></li>' +
  212. // '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>1210 <i>人</i></li>' +
  213. // '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>480 <i>间</i></li>' +
  214. // '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>710 <i>床</i></li>' +
  215. // '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>1920 <i>个</i></li>' +
  216. // '<li><span>涉及院系</span>' + datas.Dept + '</li>' +
  217. // '<li><span>涉及专业</span>' + datas.Major + '</li>' +
  218. // '</ul>' +
  219. // '<div class="laySec2Btn">' +
  220. // '<a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  221. // '<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  222. // '<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  223. // '</div>' +
  224. // '</div>' +
  225. // '<div class="layer_sec layer_sec2 layer_sec4">' +
  226. // '<ul class="laySec2List">' +
  227. // '<li><span>创 建 人 </span>' + datas.CreateBy + '</li>' +
  228. // '<li><span>创建时间 </span>' + datas.CreateTime + '</li>' +
  229. // '<li><span>更 新 人</span>' + datas.UpdateBy + ' </li>' +
  230. // '<li><span>更新时间</span>' + datas.UpdateTime + ' </li>' +
  231. // '</ul>' +
  232. // '</div>' +
  233. // '<img class="layerImg" src="/Content/images/floor/unit1-2.png" alt="" />' +
  234. // '</div>'
  235. // })
  236. //})
  237. var parentID='@ViewBag.ParentID';
  238. var vm = new Vue({
  239. el: "#app",
  240. data: {
  241. floors: "",
  242. sexImgUrl: "/Content/images/floor/inSec1-10.png",
  243. dormitoryName: "",
  244. dormitoryID: ""
  245. },
  246. methods: {
  247. getData: function () {
  248. $.get('/LogisticsManagement/Accommodation/GetUnitList?ParentID=' + parentID, function (ref) {
  249. if (ref.data) {
  250. this.floors = ref.data.rows;
  251. this.dormitoryName = ref.data.DormitoryName;
  252. this.dormitoryID = ref.data.DormitoryID;
  253. }
  254. }.bind(this), "json");
  255. },
  256. laterGetData: function () {
  257. setTimeout(function () {
  258. this.getData();
  259. }.bind(this), 1000);
  260. },
  261. filter_Dept: function (value) {
  262. var result;
  263. top.learun.clientdata.getAsync('custmerData', {
  264. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
  265. key: value,
  266. keyId: 'deptno',
  267. callback: function (_data) {
  268. result = _data.deptname;
  269. }
  270. });
  271. return result;
  272. },
  273. filter_Major: function (value) {
  274. var result;
  275. top.learun.clientdata.getAsync('custmerData', {
  276. sync: true,
  277. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
  278. key: value,
  279. keyId: 'id',
  280. callback: function (_data) {
  281. result = _data.majorname;
  282. }
  283. });
  284. return result;
  285. },
  286. filter_company: function (value) {
  287. var result;
  288. top.learun.clientdata.getAsync('custmerData', {
  289. sync: true,
  290. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
  291. key: value,
  292. keyId: 'f_companyid',
  293. callback: function (_data) {
  294. result = _data.f_fullname;
  295. }
  296. });
  297. return result;
  298. },
  299. filter_sex: function (value) {
  300. if (value == "1") {
  301. return '<div class="laySec1Sex" style="background:#7070da"><img src="/Content/images/floor/inSec1-10_2.png" alt="" />男生宿舍</div></div>'
  302. } else {
  303. return '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>'
  304. }
  305. },
  306. allocation: function () {
  307. top.learun.layerForm({
  308. id: 'form',
  309. title: '自动分配宿舍',
  310. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Allocation',
  311. width: 400,
  312. height: 250,
  313. callBack: function (id) {
  314. return top[id].acceptClick(refreshGirdData);
  315. }
  316. });
  317. },
  318. addFloor: function () {
  319. var url = "";
  320. url = top.$.rootUrl + '/LogisticsManagement/Accommodation/FormClassify?ParentID=' + this.dormitoryID;
  321. top.learun.layerForm({
  322. id: 'form',
  323. title: '新增',
  324. url: url,
  325. width: 600,
  326. height: 400,
  327. callBack: function (id) {
  328. return top[id].acceptClick(this.laterGetData());
  329. }.bind(this)
  330. });
  331. },
  332. update: function (id) {
  333. top.learun.layerForm({
  334. id: 'form',
  335. title: '编辑',
  336. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/FormClassify?keyValue=' + id,
  337. width: 600,
  338. height: 400,
  339. callBack: function (id) {
  340. return top[id].acceptClick(this.laterGetData());
  341. }.bind(this)
  342. });
  343. },
  344. deleteFloor: function (floor) {
  345. top.learun.layerConfirm('是否确认删除该项!', function (res) {
  346. if (res) {
  347. this.floors.splice($.inArray(floor, this.floors), 1);
  348. top.learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/Accommodation/DeleteForm', { keyValue: floor.dormitory.ID }, function () {
  349. });
  350. }
  351. }.bind(this));
  352. },
  353. checkDetail: function (floor) {
  354. var echarts1;
  355. //圆形图
  356. var i = 0;
  357. var g = (floor.HasStudentNum / floor.BedNum) * 100 + "%";
  358. layer.open({
  359. type: 1,
  360. closeBtn: 2,
  361. area: ['888px', '80%'],
  362. content: '<div class="layerBox unitLayer">' +
  363. '<div class="layer_sec1 layer_sec">' +
  364. '<div class="laySec1L">' +
  365. '<div class="laySec1ConT">' + floor.dormitory.Name+
  366. '<span style="display:none">' + this.filter_sex(floor.dormitory.Sex) + '</span>' +
  367. '</div>' +
  368. '<div class="laySec1R">' +
  369. '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + floor.dormitory.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + floor.dormitory.Phone + '</div></div>' +
  370. '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + this.filter_company(floor.dormitory.Campus) + '</div>' +
  371. '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + floor.dormitory.Address + '</div>' +
  372. '</div>' +
  373. '</div>' +
  374. '<div class="layer_sec layer_sec2">' +
  375. '<ul class="laySec2List">' +
  376. '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>' + floor.dormitory.DNo + '</li>' +
  377. '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + (floor.dormitory.Price == null ? '' : floor.dormitory.Price) + ' <i>元</i></li>' +
  378. '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>' + floor.floorNum + ' <i>层</i></li>' +
  379. '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>' + floor.HasStudentNum + ' <i>人</i></li>' +
  380. '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>' + floor.RoomNum + ' <i>间</i></li>' +
  381. '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>' + floor.NoStudentNum + ' <i>床</i></li>' +
  382. '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>' + floor.BedNum + ' <i>个</i></li>' +
  383. //'<li><span>涉及院系</span>' + this.filter_Dept(floor.dormitory.Dept) + '</li>' +
  384. //'<li><span>涉及专业</span>' + this.filter_Major(floor.dormitory.Major) + '</li>' +
  385. '</ul>' +
  386. '<div class="laySec2Btn">' +
  387. //'<a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  388. //'<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  389. //'<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  390. '</div>' +
  391. '</div>' +
  392. '<div class="layer_sec layer_sec2 layer_sec4">' +
  393. '<ul class="laySec2List">' +
  394. '<li><span>创 建 人 </span>' + floor.dormitory.CreateBy + '</li>' +
  395. '<li><span>创建时间 </span>' + floor.dormitory.CreateTime + '</li>' +
  396. '<li><span>更 新 人</span>' + floor.dormitory.UpdateBy + ' </li>' +
  397. '<li><span>更新时间</span>' + floor.dormitory.UpdateTime + ' </li>' +
  398. '</ul>' +
  399. '</div>' +
  400. '<img class="layerImg" src="/Content/images/floor/unit1-2.png" alt="" />' +
  401. '</div>',
  402. })
  403. }
  404. },
  405. created() {
  406. this.getData();
  407. },
  408. filters: {
  409. filter_sex: function (value) {
  410. return value == "1" ? "男生宿舍" : "女生宿舍";
  411. },
  412. filter_sexImg: function (value) {
  413. return value == "1" ? "/Content/images/floor/inSec1-10_2.png" : "/Content/images/floor/inSec1-10.png"
  414. },
  415. filter_style: function (value) {
  416. return value == "1" ? { background: '#7070da' } : {};
  417. },
  418. filter_url: function (value) {
  419. return "/LogisticsManagement/Accommodation/Corridor?ID=" + value;
  420. }
  421. }
  422. })
  423. </script>
  424. </body>