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.
 
 
 
 
 
 

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