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.
 
 
 
 
 
 

393 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="#"><img src="/Content/images/floor/inSec1-5.png" alt="" />多条件查找宿舍楼</a></li>*@
  53. <li><a href="#" @@click="allocation()"><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.UnitNum}}</span>单元 <span>{{floor.floorNum}}</span>层 <span>{{floor.RoomNum}}</span>间
  73. </div>
  74. <div class="inSec1ConTxt">
  75. <span>{{floor.BedNum}}</span>床位 &nbsp;&nbsp;&nbsp;&nbsp; 入住<span>{{floor.HasStudentNum}}</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 @@click="update(floor.dormitory.ID)"><a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>
  82. <li @@click="deleteFloor(floor)"><a 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/inSec1-4.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 color1 = ['#6471F3', '#A4C2FF'], color2 = ['#94DB95', '#ED94A5'];
  99. var vm = new Vue({
  100. el: "#app",
  101. data: {
  102. floors: "",
  103. sexImgUrl: "/Content/images/floor/inSec1-10.png",
  104. },
  105. methods: {
  106. getData: function () {
  107. $.get('/LogisticsManagement/Accommodation/GetDormitoryList', function (ref) {
  108. this.floors = ref.data;
  109. //console.log(this.floors);
  110. }.bind(this), "json");
  111. },
  112. laterGetData: function () {
  113. setTimeout(function () {
  114. this.getData();
  115. }.bind(this), 1000);
  116. },
  117. filter_Dept: function (value) {
  118. var result;
  119. top.learun.clientdata.getAsync('custmerData', {
  120. sync: true,
  121. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
  122. key: value,
  123. keyId: 'deptno',
  124. callback: function (_data) {
  125. result = _data.deptname;
  126. }
  127. });
  128. return result;
  129. },
  130. filter_Major: function (value) {
  131. var result;
  132. top.learun.clientdata.getAsync('custmerData', {
  133. sync: true,
  134. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
  135. key: value,
  136. keyId: 'id',
  137. callback: function (_data) {
  138. result = _data.majorname;
  139. }
  140. });
  141. return result;
  142. },
  143. filter_company: function (value) {
  144. var result;
  145. top.learun.clientdata.getAsync('custmerData', {
  146. sync: true,
  147. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
  148. key: value,
  149. keyId: 'f_companyid',
  150. callback: function (_data) {
  151. result = _data.f_fullname;
  152. }
  153. });
  154. return result;
  155. },
  156. filter_sex: function (value) {
  157. if (value == "1") {
  158. return '<div class="laySec1Sex" style="background:#7070da"><img src="/Content/images/floor/inSec1-10_2.png" alt="" />男生宿舍</div></div>'
  159. } else {
  160. return '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>'
  161. }
  162. },
  163. allocation: function () {
  164. top.learun.layerForm({
  165. id: 'form',
  166. title: '自动分配宿舍',
  167. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Allocation',
  168. width: 400,
  169. height: 250,
  170. callBack: function (id) {
  171. return top[id].acceptClick();
  172. }
  173. });
  174. },
  175. addFloor: function () {
  176. var url = "";
  177. url = top.$.rootUrl + '/LogisticsManagement/Accommodation/Form';
  178. top.learun.layerForm({
  179. id: 'form',
  180. title: '新增',
  181. url: url,
  182. width: 600,
  183. height: 400,
  184. callBack: function (id) {
  185. return top[id].acceptClick(this.laterGetData());
  186. }.bind(this)
  187. });
  188. },
  189. update: function (id) {
  190. top.learun.layerForm({
  191. id: 'form',
  192. title: '编辑',
  193. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Form?keyValue=' + id,
  194. width: 600,
  195. height: 400,
  196. callBack: function (id) {
  197. return top[id].acceptClick(this.laterGetData());
  198. }.bind(this)
  199. });
  200. },
  201. deleteFloor: function (floor) {
  202. top.learun.layerConfirm('是否确认删除该项!', function (res) {
  203. if (res) {
  204. this.floors.splice($.inArray(floor, this.floors), 1);
  205. top.learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/Accommodation/DeleteForm', { keyValue: floor.dormitory.ID }, function () {
  206. });
  207. }
  208. }.bind(this));
  209. },
  210. checkDetail: function (floor) {
  211. var echarts1;
  212. //圆形图
  213. var i = 0;
  214. var g = (floor.HasStudentNum / floor.BedNum) * 100 + "%";
  215. layer.open({
  216. type: 1,
  217. closeBtn: 2,
  218. area: ['888px', '80%'],
  219. content: '<div class="layerBox">' +
  220. '<img class="layerImg" src="/Content/images/floor/inSec1-4.png" alt="" />' +
  221. '<div class="layer_sec1 layer_sec">' +
  222. '<div class="laySec1L">' +
  223. '<div class="laySec1ConT">' + floor.dormitory.Name + this.filter_sex(floor.dormitory.Sex) +
  224. '</div>' +
  225. '<div class="laySec1R">' +
  226. '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + floor.dormitory.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + floor.dormitory.Phone + '</div></div>' +
  227. '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + this.filter_company(floor.dormitory.Campus) + '</div>' +
  228. '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + floor.dormitory.Address + '</div>' +
  229. '</div>' +
  230. '</div>' +
  231. '<div class="layer_sec layer_sec2">' +
  232. '<ul class="laySec2List">' +
  233. '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>' + floor.dormitory.Name + '</li>' +
  234. '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + floor.dormitory.Price + ' <i>元</i></li>' +
  235. '<li><span>单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;元</span>' + floor.UnitNum + ' <i>个</i></li>' +
  236. '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>' + floor.HasStudentNum + ' <i>人</i></li>' +
  237. '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>' + floor.floorNum + ' <i>层</i></li>' +
  238. '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>' + floor.NoStudentNum + ' <i>床</i></li>' +
  239. '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>' + floor.RoomNum + ' <i>间</i></li>' +
  240. '<li><span>涉及院系</span>' + this.filter_Dept(floor.dormitory.Dept) + '</li>' +
  241. '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>' + floor.UnitNum + ' <i>个</i></li>' +
  242. '<li><span>涉及专业</span>' + this.filter_Major(floor.dormitory.Major) + '</li>' +
  243. '</ul>' +
  244. '<div class="laySec2Btn">' +
  245. //'<a href="#"><img @@click="update(floor.dormitory.ID)" src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  246. //'<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  247. //'<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  248. '</div>' +
  249. '</div>' +
  250. '<div class="layer_sec layer_sec3">' +
  251. '<div class="layerSec3Box">' +
  252. '<div id="echarts1" style="width: 100%;height:300px;"></div>' +
  253. '</div>' +
  254. '<div class="layerSec3Box">' +
  255. '<div id="echarts2" style="width: 100%;height:300px;"></div>' +
  256. '</div>' +
  257. '</div>' +
  258. '<div class="layer_sec layer_sec2 layer_sec4">' +
  259. '<ul class="laySec2List">' +
  260. '<li><span>创 建 人 </span>' + floor.dormitory.CreateBy + '</li>' +
  261. '<li><span>创建时间 </span>' + floor.dormitory.CreateTime + '</li>' +
  262. '<li><span>更 新 人</span>' + floor.dormitory.UpdateBy + ' </li>' +
  263. '<li><span>更新时间</span>' + floor.dormitory.UpdateTime + ' </li>' +
  264. '</ul>' +
  265. '</div>' +
  266. '</div>',
  267. cancel: function () {
  268. echarts1.dispose();
  269. }
  270. })
  271. echarts1 = echarts.init(document.getElementById('echarts1'));
  272. echarts1.setOption({
  273. title: {
  274. text: '{a|' + g + '}\n{b|入住率}',
  275. x: 'center',
  276. y: 'center',
  277. textStyle: {
  278. rich: {
  279. a: {
  280. fontSize: '26',
  281. color: '#8F8F8F',
  282. lineHeight: 40
  283. },
  284. b: {
  285. fontSize: '16',
  286. color: '#B1B1B1'
  287. }
  288. }
  289. }
  290. },
  291. legend: {
  292. data: ['空床', '入住']
  293. },
  294. grid: {
  295. top: '5%',
  296. left: '2%',
  297. bottom: '10%',
  298. containLabel: true
  299. },
  300. tooltip: {
  301. show: true
  302. },
  303. series: [
  304. {
  305. name: '',
  306. type: 'pie',
  307. radius: ['50%', '70%'],
  308. avoidLabelOverlap: true,
  309. // 高亮偏移值
  310. hoverOffset: 5,
  311. label: {
  312. normal: {
  313. show: false
  314. }
  315. },
  316. labelLine: {
  317. normal: {
  318. show: false
  319. }
  320. },
  321. // highlight 自定义属性 有此属性该数据集保持高亮
  322. data: [{ value: floor.HasStudentNum, name: "入住" }, { value: floor.NoStudentNum, name: "空床" }],
  323. itemStyle: {
  324. normal: {
  325. color: function () {
  326. return color1[i++];
  327. }
  328. },
  329. },
  330. }
  331. ]
  332. });
  333. }
  334. },
  335. created() {
  336. this.getData();
  337. },
  338. filters: {
  339. filter_sex: function (value) {
  340. return value == "1" ? "男生宿舍" : "女生宿舍";
  341. },
  342. filter_sexImg: function (value) {
  343. return value == "1" ? "/Content/images/floor/inSec1-10_2.png" : "/Content/images/floor/inSec1-10.png"
  344. },
  345. filter_style: function (value) {
  346. return value == "1" ? { background: '#7070da' } : {};
  347. },
  348. filter_url: function (value) {
  349. return "/LogisticsManagement/Accommodation/Unit?ID=" + value + "&bbc=aa%26";
  350. }
  351. }
  352. })
  353. </script>
  354. </body>
  355. )